CS/CS2021. 12. 12. 00:38[CS] 컴파일러(Compiler)란?

1. 컴파일러(Compiler) - 특정 프로그래밍 언어로 쓰여 있는 문서를 다른 프로그래밍 언어 혹은 컴퓨터 언어로 옮기는, 일종의 번역 프로그램. - 비주얼, 터보, 볼랜드 등 언어에 따라 다양한 컴파일러 종류가 존재한다. - 보통 high-level 프로그래밍 언어를 실행 프로그램으로 만들기 위한 lower level언어(ex 어셈블리 언어, object 코드, 등)로 바꾸는 데에 사용 - 원래의 문서를 '소스 코드' 혹은 원시 코드라고 부름 - 출력된 문서를 '목적 코드'라고 부름 1) 컴파일러 실행 단계 (1) 구문 분석 : 소스 코드 파일을 읽어 추상 구문 트리 생성, 문법에 맞지 않는 소스 코드는 사용자에게 알림 (2) 최적화 : 추상 구문 트리 분석 및 최적화. (3) 코드 생성 : 목적 ..

[Git] Clone부터 PR까지, project cycle
CS/Git2021. 12. 11. 21:05[Git] Clone부터 PR까지, project cycle

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..

CS/CS2021. 12. 7. 17:18[CS] 코딩 할 때 단어 표기법(camelCase, snake_case, UpperCase .,)

1. camelCase - 단어를 표기 할 때 첫 문자를 소문자로 시작하여, 띄어쓰기 대신 대문자로 단어를 구분. - 변수명과 함수명을 주로 camelCase를 통해 작성한다. 2. snake_case - 단어를 표기 할 때 모든 문자를 소문자로, 띄어쓰기 대신 언더바로 단어를 구분. - API, DB에서 주로 사용한다. 3. UpperCase - 단어를 표기 할 때 단어의 첫 글자만 대문자로 작성.

[CS] 자료구조란? 알고리즘이란?
CS/CS2021. 11. 18. 17:21[CS] 자료구조란? 알고리즘이란?

1. 알고리즘과 자료구조의 관계 자료 구조(Data structure) : 자료를 처리하는 방법 알고리즘(Algorithm) : 문제를 처리하는 절차(입력을 받아 원하는 값으로 출력하는 절차) 1) 알고리즘 : 문제 해결을 위한 처리 절차. - 문제와 컴퓨터가 주어진 상태에서 문제를 해결하는 방법을 정밀하게 장치가 이해 할 수 있는 언어로 기술 한 것. - 0개 이상의 입력, 1개 이상의 출력이 존재 - 명백성 : 각 명령어의 의미는 모호하지 않고 명확해야 함. - 유한성 : 한정된 수의 단계 후에는 반드시 종료되어야 함. - 유효선 : 각 명령어들은 실행 가능함 연산이어야 함. 2) 자료구조 : 데이터를 저장하거나 조직하는 방법. - 데이터로의 접근과 변경을 편리하게 하기 위함. - 자료구조는 언어별로..

[CS] 절차지향 vs 객체지향
CS/CS2021. 11. 18. 17:05[CS] 절차지향 vs 객체지향

1. 프로그래밍 언어 종류 절차지향 언어(C언어) 객체지향 언어(JAVA, C++, C#,Python, 시뮬라67, 비주얼 베이직 닷넷..,) 1) 절차지향 언어(Procedural Programing) - 개체를 순차적으로 처리(컴퓨터의 처리구조와 유사) - 프로그램 전체가 유기적으로 연결되어있어야 함. - 장점 : 실행 속도가 빠름. - 단점 : 유지보수 어려움(부분 고장시 전체 고장), 비효율적 - 실행 순서가 정해져 있기에, 코드의 순서가 바뀌면 결과가 달라질 가능성 多 2) 객체 지향 언어(Object-criented Language) cf) 객체 : 사물, 사람, 추상적인 개념이 될 수도 있는 '무언가' - 프로그램을 다수의 객체로 만들고, 서로 상호작용 하도록 만드는 언어.(캡슐화, 상속, ..

[CS] 함수 호출 방법 Call by value vs Call by reference
CS/CS2021. 11. 18. 16:50[CS] 함수 호출 방법 Call by value vs Call by reference

1. 함수의 호출 방법 값에 의한 호출(call by value) 참조에 의한 호출(call by reference) 1) Call by value(값에 의한 호출) : 인자로 받은 값을 복사하여 처리. - 인자로 받은 값에 직접적인 영향을 주지 않는다. - 단점 : 복사를 하기 때문에, 메모리 양이 늘어난다. (과부하의 원인) - 장점 : 복사를 하기 때문에, 원래 값은 영향을 받지 않아 안전하다. 2) Call by referencr(참조에 의한 호출) : 인자로 받은 값의 주소를 참조하여 처리. - 인자로 받은 값에 직접적인 영향을 준다. - 장점 : 복사를 하지 않고 직접 참조하기에, 빠르다. - 단점 : 직접 참조를 하기에 원래 값이 영향을 받아, 리스크가 있다. 3) Call by assign..

[Git] 깃(git)과 깃허브(github)란 무엇인가?
CS/Git2021. 10. 29. 03:13[Git] 깃(git)과 깃허브(github)란 무엇인가?

1. GIT이란 무엇인가? 깃(Git)은 2005년에 리누스 토르발스에 의해 개발된 '분산 버전관리 시스템(Distributed Version Control Systems - DVCS)'으로, 컴퓨터 파일의 변경사항을 추적하고 여러명의 사용자들 간에 파일에 대한 작업을 조율하는데 사용된다 (참고 : https://git-scm.com/book/ko/v2 Git 공식 사이트 한글 메뉴얼). 즉, 주로 여러명의 개발자가 하나의 소프트웨어 개발 프로젝트에 참여할 때, 소스 코드를 관리하는데 주로 사용된다. 그렇다면, 2. 버전관리는 왜 필요한가? 쉬운 이해를 위해 'PPT로 발표자료를 만든다'는 하나의 가정을 들어보자. 처음에 '발표.ppt'라는 제목의 파일을 만들었다가, 내용이 바뀔 경우 '발표_최종.ppt..

[Linux] 기본 리눅스 명령어 조사
CS/Linux2021. 10. 28. 23:19[Linux] 기본 리눅스 명령어 조사

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 ~ ..

image