728x90

 

환경변수(Environment Variable)

'환경'이라는 단어는 컴퓨터에서 소프트웨어가 동작하는 공간을 의미

환경 변수는 컴퓨터마다 지정된 값

환경이라는 방 안에 칠판이 있고 그 안에 변수들이 적힌 것

 

환경변수의 용도

1.경로에 상관없이 파일을 찾게해줌

코드로 각 집에 '영어사전을 ${서재}에 꽂으세요'라는 코드를 보내면,

철수네는 서재가 아버지방에

영희네는 서재가 거실에 있는데

이 '서재'라는 환경변수에 집별로 적절히 들어간 값 때문에 어느 집에서든지 이 명령어로 올바른 곳에 사전을 꽂을 수 있게됨

 

자바를 설치 한 직후 환경변수를 세팅하는 것도 자바가 어디에 있던지 문제 없이 자바를 찾아 실행할 수 있게 하기 위함

 

2.

집의 ${건물종류}가 전원주택이면 잔디를 깎으세요

각 환경의 조건마다 어떤 동작을 실행할지 정할 수 있다

 

개발 할 때 보통 개발용과 배포용으로 나누어서 파일을 관리한다 

개발자가 디버깅을 쉽게하기 위해서 어떤 정보들을 뜨도록 할 수 있는데 이게 유저들이 사용할 때도 뜨면 곤란할 것이다

그렇다고 배포할 때마다 해당 코드들을 지우기도 일이 많아지기에,

개발하는 컴퓨터와 제품이 배포될 서버 등에 각각 환경변수 값을 위의 이미지처럼 따로 설정해주고 조건을 주면 개발용 컴퓨터에서만 디버깅 정보가 나타날 수 있음

 

3.

비밀번호를 철수나 영희네 집 둘 중 하나만 보내더라도 환경변수를 사용해서 코드를 작성해야함

이렇게 하지 않으려면 코드에 직접 비밀번호를 적어야하는데 비번 노출 위험이 커지기 때문에 환경변수를 쓰는 것

특히, 오픈소스로 공개되는 코드들에는 이런 보안요소들이 공개되면 위험

 

환경이란 컴퓨터가 돌아가는 전체 환경 뿐만아니라

도커의 컨테이너 같이 프로세스가 돌아가는 보다 세분화된 공간을 의미하기도 한다

 


 

라이브러리(Library) & 프레임워크(Framework)

특정 기능이 함수나 클래스 등의 형태로 제작되어 공개된 것을 가져다가 내 프로그램에 사용될 수 있는 것

모듈화된 코드 또는 그 묶음들을 라이브러리

 보통 다른 사람이 만들지만 내가 만들 수도 있고 어떤 소프트웨어든 

집을 지을 때, 집을 짓는데 사용되는 자재가 라이브러리라면, 프레임워크는 기본 골격을 갖춘 집 조립키트

컴퓨터 조립으로는, 마더보드가 프레임워크고 거기에 끼워넣는 각 파치들을 라이브러리라고 할 수 있다

 

라이브러리

ex)math, 텐서플로우, 판다스 등

프레임워크

ex)스프링, 장고, .NET, 라라벨, Express, Vue

 

 

출처

https://www.youtube.com/watch?v=GYmuQJiPeM4

728x90
반응형
728x90


728x90
반응형

'small steps > 운동 - 체력이 국력' 카테고리의 다른 글

22.01.14 운동기록 & 식단 탄수화물 배움  (0) 2022.01.15
22.01.13 운동기록  (0) 2022.01.14
22.01.11 운동기록  (0) 2022.01.12
22.01.10 운동기록  (0) 2022.01.11
22.01.09 운동기록  (0) 2022.01.09
728x90

 

if

else if

else문과 

인자 args[] 배열 써보기

 

 

 

728x90
반응형
728x90


728x90
반응형

'small steps > 운동 - 체력이 국력' 카테고리의 다른 글

22.01.13 운동기록  (0) 2022.01.14
22.01.12 운동기록  (0) 2022.01.13
22.01.10 운동기록  (0) 2022.01.11
22.01.09 운동기록  (0) 2022.01.09
22.01.08 운동기록  (0) 2022.01.08
728x90

 

 

디버깅(Debugging)

어원의 유래

초창기 컴퓨터에는 벌레(bug)가 들어가서 고장이 잘 났었는데,

이때 벌레(bug)를 찾아 치우는 일에서 디버깅(debugging)이라는 말이 유래됬다고함

 

코드가 길고 복잡해지면 머릿 속에서 다 둘러볼 수 없기에 코드의 일정 단계별로 

확인할 수 있도록 하나씩 찾아보게된다

여러 프로그래밍 개발에 유용한 툴들인 vs code, IntelliJ 등에는 모두 디버깅 기능이 있다

 

1.소프트웨어에 문제가 생긴 것을 잡는 것

의도치 않은 상황에 자주 마주치게 되고, 코딩 중 상당한 시간이 디버깅에 할애된다

2. 개발중

배포라는 의미와 대비되서 아직 완성되지 않은 상태의 개발중이라는 의미로도 쓰인다

 


 

컴파일러(Compiler) & 인터프리터(Interpreter)

컴퓨터 언어는 0과 1로 구성되어 있다. 

사람이 0과1로만 ㄱㄴㄷㄹ를 하나씩 다 한다고 상상해보자 정말 헬일 것이다.

쉽게 해석가능하다면 컴퓨터와 친구하자

 

컴퓨터의 언어를 사람이 알 수 있게 

사람의 언어를 컴퓨터가 알 수 있게 또는 그 중간 단계로 변역해주는 작업과정에서

미리 해놓으면 컴파일러

실행할 때마다 통역하면 인터프리터

 

프로그래머들은 이런 특성을 고려해서 자신들이 만들려는 프로그램의 언어를 선택한다

 

컴파일 언어

번역 프로그램인 컴파일러가 사람이 작성한 소스코드를 사전에 번역 해놓는 것

이렇게 미리 컴파일 해놓는 컴퓨터언어들을 컴파일 언어라고 부른다

ex) C,C++ 등

 

인터프리터 언어(=스크립트 언어)

장점 : 코드 수정이 잦은 서비스의 경우 업데이트가 용이

단점 : 컴파일언어에 비해 느리다, 프로그래머가 짠 코드가 그대로 배포되어 사용되기에 코드가 보다 쉽게 노출되기 쉽다

ex) 자바스크립트,파이썬,루비 등

 

 

 

출처

https://www.youtube.com/watch?v=GYmuQJiPeM4

728x90
반응형

+ Recent posts