제이슨의 개발이야기
프로그래밍 용어 빌드? sdk? jdk? 컴파일? 본문
안녕하세요 프로그래밍 공부를 하고 있는 학생이나 면접을 준비하고 있는 취업 준비생 혹은 전공생 분들이 개발 공부를 하다보면 문득 이런 생각이 듭니다 빌드가 근대 뭐지? sdk가 뭐지? 컴파일이 머였더라? 분명 대충 무엇인지는 알지만 이걸 누군가가 물어본다면 어떻게 설명해야 할까 난감할때가 있습니다 그래서 오늘은 이러한 용어 정리를 해보려구 합니다
컴파일 :
프로그래밍 언어로 작성한 프로그램을 컴퓨터가 이해할 수 있도록 기계어로 번역하는 일 자체를 컴파일 이라고 한다
빌드 :
소스코드 파일을 실행가능한 소프트웨어 산출물로 만드는 일련의 과정입니다
빌드를 하게 되면 자바로 예를들면 소스코드를 컴파일 해서 .class 파일로 변환하는 과정을 거치고 여러 resource .class에서 참조 할 수 있는 적절한 위치에 옮기고 각종 metadata 등등을 하나로 묶는 역할입니다
즉 컴파일은 빌드의 일부분입니다! 빌드도구로는 Ant, Maven, Gradle 입니다
sdk
Software Development Kit의 줄임말
SDK 안에는 개발에 도움이 될 개발 도구 프로그램, 디버깅 프로그램, 문서, API 등이 있습니다
jdk
jdk는 Java Development Kit의 줄임말로
자바 개발을 위한 sdk 라고 생각하시면 됩니다
참고로 Java SE 는 jdk 라고 하지만 Java EE 는 sdk 라고 하네요 이유는 저도 잘 모르겠습니다 ㅎㅎ....
아 그리고 제가 요즘 코틀린 공부를 하고 있는대 코틀린도 jdk를 이용하더라구요 아마 같은 .class 파일로 변환 하기 때문이지 않을까 싶습니다
API
API는 응용 프로그램 개발 시 운영체제나 프로그래밍 언어 등에 있는 라이브러리를 이용할 수 있도록 규칙 등을 정의해 놓은 인터페이스를 말합니다 !
library(라이브러리 )
라이브러리는 함수 혹은 메소드 의 집합입니다 기존의 누군가가 만들어 놓은 것들을 가저다 쓸 수 있습니다
예를 들면 okhttp , glide 등이 있습니다
framework (프레임워크 )
프레임워크는 단어 그대로 어떤 일을 하기 위한 틀 이라고 생각하시면 됩니다 프레임 워크 역시 함수 혹은 메소드 들의 집합이지만
어떠한 특정한 일을 하기 위해 필수적으로 필요 하거나 있으면 좋은 기능을 제공하는 함수 혹은 메소드의 집합체라고 생각하시면 됩니다
웹 애플리케이션 서버(web application server)
사용자에게 동적 서비스를 제공하기 위해 웹 서버로 부터 요청을 받아 데이터 가공 작업을 수행 하거나 웹 서버 와 데이터베이스 서버 또는 웹 서버와 파일 서버 사이에서 인터페이스 역할을 수행하는 서버이다
예 : Apache Tomcat , Oracle WebLogic
웹서버(web server)
클라이언트로 부터 직접 요청을 받아 처리하는 서버로 저 용량의 정적파일들을 제공한다
여기에서 정적파일을 제공한다는 말이 중요!!!!
예 : Apache Http Server , Google Web Server
디버깅
컴퓨터 프로그램 개발 단계 중에 발생하는 오류 , 잘못된 연산을 찾아내서 원인을 밝히고 수정하는 작업 과정
동기방식
요청(request)을 하면 시간이 얼마나 걸리던지 그 자리에서 결과(response)가 주어집니다
그래서 그 결과를 받기 전까지는 다른 일은 수행 하지않습니다
비동기방식
요청을 하고 그 결과와 상관없이 다른 일이 수행되는 것을 비동기 입니다
결과를 주어지는데 시간이 걸리더라도 다른 일을 할 수 있어서 자원의 효율을 얻을 수 있습니다
비동기식은 비동기식 처리를 요청할 때 할일 이 끝난 후 처리결과를 알려주는 콜백이라는 함수를 함께 알려줍니다
자세한 내용은 아래 블로그 참고
'컴퓨터과학' 카테고리의 다른 글
Git Commit Message 규칙 (0) | 2021.08.17 |
---|---|
Gson 라이브러리는 무엇일까? 간단한 JSON 형 변환JSON-> Data Model , Model->JSON (0) | 2021.08.11 |
앱 버전(version) 관리 규칙 공부하기!~ 4.2.1 은 어떤 방식으로? (1) | 2021.08.02 |
RestFul API 란 무엇인가? (0) | 2021.03.02 |
Heap 자료 구조 란? (0) | 2021.02.21 |