디버깅
초창기 컴퓨터에 벌레가 들어가서 고장나 벌레를 찾아 치우는 것으로부터 유래.
디버깅은 '개발중'의 의미가 있으며 배포와 대조되는 단어로 쓰이기도 한다.
버그가 일어나는 원인은 다양하다.
1) 코드 구문에 오탈자가 있거나
2) 논리적으로 설계가 잘못되었거나
3) 코드가 실행될 컴퓨터와 안 맞는 부분이 있거나.
4) 프로그래머가 예상하지 못한 데이터
등등
버그가 발생할만 곳에 이를 체크할 수 있는 방안을 마련하는 것이 좋음.
디버깅은 많은 에너지와 시간이 소요됨.
이용자의 디버깅 편의를 돕기 위한 다양한 프로그램들이 있음.
Visual Studio나 Eclipse, IntelliJ 등.
코딩 프로그램은 디버깅 도구도 내장되어 있음.
컴파일러 vs 인터프리터
자연어를 기계어로 번역해주는 것.
이 작업(번역)을 미리 해놓으면 컴파일러, 그때 그때 하면 인터프리터.
자바코드는 컴파일러 또는 인터프리터를 통해 class로 변경한다.
인터프리터 언어는 컴파일러가 필요없어 코드 수정이 낮은 서비스의 경우
업데이트가 훨씬 수월하지만 실시간 번역이므로 실행 속도는 컴파일레 비해 느림.
게다가 프로그래머가 짠 코드가 그대로 배포되어 사용되기 때문에
프로그래밍 코드가 쉽게 노출되기도 함.
코드, 라이브러리, 이미지 등 서비스를 위한 모든 것들을 묶는 것을 '빌드'라고 한다.
빌드의 이유로 exe 파일로 변경. 코드의 노출을 줄이기 위함. 기계어로 바꾸는 컴파일링도 포함.
배포
코딩에서 빌드한 결과물을 사용자에게 전달하는 과정.
환경
'환경'이란 소프트웨어가 동작하는 공간을 의미.
환경 '변수'는 컴퓨터마다 지정된 값들을 의미한다.
환경변수는 크게 세 가지 용도가 있다.
1) JAVA 환경 변수 - 유저가 JAVA를 해당 하드웨어 사용할 수 있도록 알려주는 역할.
2) 배포시 타겟 유저에 따른 제한설정.
mode : dev(개발용), mode : prod (배포용)
3) 다양한 용도에 따른 설정을 위함
라이브러리 vs 프레임워크
개인이나, 기업, 단체에서 잘 만들어놓은 것을 가지고 내가 개발을 시작한다.
이것들을 라이브러리라고 하며 꼭 남이 만든 것만이 라이브러리가 아니다.
내가 만든 전용 라이브러리도 라이브러리다.
프레임워크의 종류 : 스프링, 장고, NET, 라라벨, Express, Vue
규칙 안에서 개발하면 프레임워크.
자재를 가져다가 개발할 때 자재가 되는 것이 라이브러리.
보통 프레임워크에서 개발하다가 라이브러리를 가져다가 완성하는 것이 보통의 흐름이다.