개발/개발자 면접 준비

    빌드과정 ( 전처리, 컴파일, 어셈블리, 링킹 )

    빌드과정 ( 전처리, 컴파일, 어셈블리, 링킹 )

    이번에는 기본 중 기본 빌드과정에 알아보려합니다. 빌드과정 진짜 너무너무 쉬워서 무시할 수 있는데, 그래도 컴파일 언어를 쓴다면 다시 되짚어보면 좋은기회라 생각해 글을 올리게되었습니다. 먼저 C++ 기준으로 빌드과정을 설명 및 정리하겠습니다. 빌드과정은 1. Preprocessor (전처리기) - #define 같은 매크로나 지시자를 소스코드로 변경하고, cpp 확장자를 가진 파일이 i 파일이 된다. 2. Parser(문법검사) - 코드 문법을 검사하고, 문법에 따라 코드를 쪼갠다. 3. Translation (번역) - 소스코드를 어셈블리어로 번역하고, i파일이 s파일이 된다. 4. Assembler(번역) - 어셈블리어를 기계어만큼 낮은 수준의 언어로 번역하고, s파일이 o파일이 된다. ------여..

    x64와 x86의 차이

    먼저 어느정도 아시는 분이라면, x64는 64비트 x86은 32비트를 의미하는 것을 압니다. 즉, 이번 글에서는 32비트 프로그래밍과 64비트 프로그래밍의 차이에 대해서 알아보려합니다. 1. 32비트 vs 64비트 차이는 레지스터의 처리값 CPU는 I/O버스를 통해 데이터 내,외부로 전송합니다. 그 한 번에 데이터를 전송하는 양이 32bit, 64bit 입니다. 2. 32비트 컴퓨터와 64비트 컴퓨터 차이 RAM에서 표현할 수 있는 주소값에서 보인다. 2^32 = 2^2 * 2^30 = 4 * 2^30 = 4 GB 즉, 4GB 초과한 메모리 영역에는 참조할 수 없고, 32비트 CPU에서는 4GB RAM을 인식하지 못한다. 3. 궁금증 Q. 32bit 프로그램은 64bit 운영체제에서 작동하지 않는가? A..

    Procedure, Function

    프로시저와 함수의 정의와 차이를 해보려한다. 정의 : 일련의 쿼리를 마치 하나의 함수처럼 사용하기 위한 쿼리의 집합 - 특정 작업을 수행하는, 이름이 있는 PL/SQL BLOCK 차이점 : Procedure (프로시져) - 서버 측에서 실행된다. Function (함수) - 클라이언트 측에서 실행된다. DB 상에서 쓰이는 용어로서, 다른 게시글 찾아보면 뭐 IN OUT 있다고 하는데 정작 팩트를 가려낼 수 없어 적지 않았다.

    Call by Value, Call by Reference

    콜 바이 밸류, 콜 바이 레퍼런스 많이 들어 봤다. 이 글을 쓰기 위해 공부를 하면서 Call by Address, Call by Assignment 등을 들어봤다. 그러나 언어에 따른 차이점인 것 같아 크게 들어본 Value, Reference에 대해서만 언급하기로 한다. --> 추후, 프로그래밍 언어 공부에 따라 다른 부분도 필요하면 업로드할 예정. 항상 말하지만, 정확한 정의, 해석 전달을 해주고 싶다. 그러나 능력이 부족해 올바르게 전달하지 못할 수 있다. 그래서 댓글이나 연락을 준다면 꼭 수렴해 변경하고 싶다. 먼저, 각 정의부터 정리하고, 차이점을 짚어주겠다. 함수 호출방식에 따른 단어. 1. Call by value ( 값에 의한 호출 ) - C++ 경우, 함수가 호출될 때, 메모리 공간 안..