1. 컴파일러(Compiler) - 특정 프로그래밍 언어로 쓰여 있는 문서를 다른 프로그래밍 언어 혹은 컴퓨터 언어로 옮기는, 일종의 번역 프로그램. - 비주얼, 터보, 볼랜드 등 언어에 따라 다양한 컴파일러 종류가 존재한다. - 보통 high-level 프로그래밍 언어를 실행 프로그램으로 만들기 위한 lower level언어(ex 어셈블리 언어, object 코드, 등)로 바꾸는 데에 사용 - 원래의 문서를 '소스 코드' 혹은 원시 코드라고 부름 - 출력된 문서를 '목적 코드'라고 부름 1) 컴파일러 실행 단계 (1) 구문 분석 : 소스 코드 파일을 읽어 추상 구문 트리 생성, 문법에 맞지 않는 소스 코드는 사용자에게 알림 (2) 최적화 : 추상 구문 트리 분석 및 최적화. (3) 코드 생성 : 목적 ..
1] Git clone 원격 저장소의 파일을 로컬 컴퓨터로 받아오는 과정. ㄴ 원격 저장소의 master branch(이외에 파일을 받아올 branch)에서 clone 혹은 pull. 1) 프로젝트 초기 다운로드 : clone 사용 2) 프로젝트 진행 중 / 저장소 수동 설정을 원할 경우 : pull 사용 2] 작업 진행 : 프로젝트 내 새로운 파일 생성 혹은 기존 파일 수정 등 그냥 모든 작업. 랄라라라랄 나의 환상적인 코드를 일단 짜보기 랄라랄 3] git add " Staging area에 새로 생성된/ 수정된 파일 등록. " 1) 신규 생성 파일의 경우 : 각각의 파일 Untracked -> Tracked_Staged로 상태 변경 2) 수정된 파일의 경우 : 각각의 파일 Tracked_Modifi..
1. camelCase - 단어를 표기 할 때 첫 문자를 소문자로 시작하여, 띄어쓰기 대신 대문자로 단어를 구분. - 변수명과 함수명을 주로 camelCase를 통해 작성한다. 2. snake_case - 단어를 표기 할 때 모든 문자를 소문자로, 띄어쓰기 대신 언더바로 단어를 구분. - API, DB에서 주로 사용한다. 3. UpperCase - 단어를 표기 할 때 단어의 첫 글자만 대문자로 작성.
1. 알고리즘과 자료구조의 관계 자료 구조(Data structure) : 자료를 처리하는 방법 알고리즘(Algorithm) : 문제를 처리하는 절차(입력을 받아 원하는 값으로 출력하는 절차) 1) 알고리즘 : 문제 해결을 위한 처리 절차. - 문제와 컴퓨터가 주어진 상태에서 문제를 해결하는 방법을 정밀하게 장치가 이해 할 수 있는 언어로 기술 한 것. - 0개 이상의 입력, 1개 이상의 출력이 존재 - 명백성 : 각 명령어의 의미는 모호하지 않고 명확해야 함. - 유한성 : 한정된 수의 단계 후에는 반드시 종료되어야 함. - 유효선 : 각 명령어들은 실행 가능함 연산이어야 함. 2) 자료구조 : 데이터를 저장하거나 조직하는 방법. - 데이터로의 접근과 변경을 편리하게 하기 위함. - 자료구조는 언어별로..
1. 프로그래밍 언어 종류 절차지향 언어(C언어) 객체지향 언어(JAVA, C++, C#,Python, 시뮬라67, 비주얼 베이직 닷넷..,) 1) 절차지향 언어(Procedural Programing) - 개체를 순차적으로 처리(컴퓨터의 처리구조와 유사) - 프로그램 전체가 유기적으로 연결되어있어야 함. - 장점 : 실행 속도가 빠름. - 단점 : 유지보수 어려움(부분 고장시 전체 고장), 비효율적 - 실행 순서가 정해져 있기에, 코드의 순서가 바뀌면 결과가 달라질 가능성 多 2) 객체 지향 언어(Object-criented Language) cf) 객체 : 사물, 사람, 추상적인 개념이 될 수도 있는 '무언가' - 프로그램을 다수의 객체로 만들고, 서로 상호작용 하도록 만드는 언어.(캡슐화, 상속, ..
1. 함수의 호출 방법 값에 의한 호출(call by value) 참조에 의한 호출(call by reference) 1) Call by value(값에 의한 호출) : 인자로 받은 값을 복사하여 처리. - 인자로 받은 값에 직접적인 영향을 주지 않는다. - 단점 : 복사를 하기 때문에, 메모리 양이 늘어난다. (과부하의 원인) - 장점 : 복사를 하기 때문에, 원래 값은 영향을 받지 않아 안전하다. 2) Call by referencr(참조에 의한 호출) : 인자로 받은 값의 주소를 참조하여 처리. - 인자로 받은 값에 직접적인 영향을 준다. - 장점 : 복사를 하지 않고 직접 참조하기에, 빠르다. - 단점 : 직접 참조를 하기에 원래 값이 영향을 받아, 리스크가 있다. 3) Call by assign..
1. GIT이란 무엇인가? 깃(Git)은 2005년에 리누스 토르발스에 의해 개발된 '분산 버전관리 시스템(Distributed Version Control Systems - DVCS)'으로, 컴퓨터 파일의 변경사항을 추적하고 여러명의 사용자들 간에 파일에 대한 작업을 조율하는데 사용된다 (참고 : https://git-scm.com/book/ko/v2 Git 공식 사이트 한글 메뉴얼). 즉, 주로 여러명의 개발자가 하나의 소프트웨어 개발 프로젝트에 참여할 때, 소스 코드를 관리하는데 주로 사용된다. 그렇다면, 2. 버전관리는 왜 필요한가? 쉬운 이해를 위해 'PPT로 발표자료를 만든다'는 하나의 가정을 들어보자. 처음에 '발표.ppt'라는 제목의 파일을 만들었다가, 내용이 바뀔 경우 '발표_최종.ppt..
0. 매뉴얼을 보여주는 리눅스 명령어(man) 1] man : 특정 명령어의 사용법을 알 수 있음.(manual) ex) $ man ls : ls라는 명령어의 사용법을 알려달라는 명령. - cf) 섹션 1 : 일반 명령어, 섹션 2 : 시스템 호출, 섹션 3 : 라이브러리 함수 외 호출 섹션별 출력 매뉴얼이 다름. 1. 파일, 디렉토리에 관한 명령어(pwd, cd, mkdir 외) 1] pwd : 현재 작업하고 있는 디렉토리의 경로명을 출력(print work directory) 2] cd : 디렉토리 이동 명령어(+옵션) 결과물 cd [디렉토리 명] 디렉토리 명으로 이동 cd . 현재 디렉토리 cd .. 한 단계 상위 디렉토리 cd / 최상위 디렉토리 cd $변수명 변수에 저장된 경로로 이동 cd ~ ..