728x90

프로그래밍 이야기 43

코딩인터뷰 퀘스천"메모" 프로그래밍 기초, 알고리즘, 연결 리스트, 스택

. . 책 읽으면서 메모했던 내용들 옮겨봅니다. 챕터1 프로그래밍 기초 / 12, 13 프로그래밍 테크닉, 기초 문제 -네임 맹글링(Name mangling) C컴파일러는 언더바’_’ 를 붙여 함수나 심볼을 연결. main() 함수는 _main() 심볼명, int counter; 는 _counter 심볼명에 링크. C++ 컴파일러는 함수 오버로딩 메커니즘. 단순 언더바를 붙이지 않고, 링커가 ‘맹글링’을 사용. 네임 맹글링 : C++ 컴파일러가 동일한 이름의 함수, 변수들을 라인 식별자, 인자 크기 등의 확장 정보들을 가진 어떤 명칭(유일 심볼명)으로 변경, 연결하기 위한 메커니즘. ​ 함수명 맹글링 : @ 변수명 맹글링 : @@ ex) int Test(int a, int b) => _1add@8 ex)..

[책] 코딩인터뷰 퀘스천 (2015출간)

. . 정식으로 퇴사한지 1주일 정도 넘었습니다. 회사다닐 때보다 더 여러가지 바쁘게 하고 있는 탓인지 시간이 정말 빠르게 흘러가네요. 벌써 10월 중순이라니. ​ 너무 멀지 않은 미래에 구직활동겸 인터뷰 준비도 다시 해야하고, 이번 기회에 기본기에 대한 것들도 한 번 공부해보자는 생각에 코딩인터뷰 책도 한 권 보기 시작했습니다. 사실 원래 보려고 했던 2017년 출간된 다른 서적을 구하지못해서 구하기 전까지 훑어보자는 생각으로 구해온 책입니다. ​ 책의 저자는 아마존 수석 개발자, 하이데라바드의 Microsoft, IBM 연구소 등에서 근무한 경력이 있고 컴퓨터 과학 석사까지 마친 엘리트 느낌의 개발자입니다. ​ 책의 구성은 마치, 정보처리 계통의 자격증 시험 교과서같은 느낌입니다. 그만큼 정보처리 기..

A Tour of C++ : 4장 클래스

. . 4. 클래스 ​ 4.1 소개 4~7 장은 C++의 추상화 지원, 자원 관리 훑어봄 - 4장 : 새로운 타입(사용자 정의 타입) 정의하고 사용방법 가볍게. 구체 클래스(Concrete class), 추상 클래스(abstract classes), 클래스 계층 구조(class hierarchies) 기본 속성, 구현 기법, 언어 기능 - 5장 : 생성자, 소멸자, 대입 연산 등. C++ 특별한 의미 연산자 설명. 객체의 생애 주기와 자원관리 지원 방법. - 6장 : 타입 파라미터화, 타입 알고리즘 파라미터화= 템플릿(template). 템플릿 함수, 함수 객체로 일반화 - 7장 : 제네릭 프로그래밍 개념, 기법, 언어 기능.템플릿 인터페이스 표현, 설계 가이드 컨셉 정의, 사용 방법. 일반적이고 유연한..

A Tour of C++ : 3장 모듈화

. . 3. 모듈화 3.1 소개 C++ 프로그램은 독립적으로 개발된 여러 부분으로 구성. 함수, 사용자 정의 타입, 클래스 계층 구조, 템플릿 등. 핵심 = 구송 요소들의 상호작용을 명확하게 정의하는 것. 첫 단계 = 인터페이스와 구현을 분리 ​ 3.2 분할 컴파일 사용할 타입과 함수의 선 : 사용할 타입과 함수의 정의 각각 분리된 파일에 존재, 따로 컴파일할 수 있어 프로그램을 반독립적(semiindependent) 코드 조각 집할들로 조직화. 이런 분리는 컴파일 시간 최소화, 논리적 구분/분리를 강제 (에러 소지도 줄어듬) 분할 컴파일된 코드 조각을 흔히 라이브러리라고 부르기도 ​ vector.h vector.cpp, user.cpp ​ vector.h의 정의와 인터페이스는 공유하지만, 두 cpp 파..

A Tour of C++ : 1장 기초, 2장 사용자 정의 타입

. . 책 요약정리는 어디까지나 개인적인 스터디노트 성격이 강하므로, 제가 정리하고싶은 내용만 체리픽 해서 다룹니다. 전체 내용이나 원본은 직접 책에서 확인해주세요. ​ C++ 에 대한 내용이다보니, 주관적으로 굳이 다룰 필요 없다고 생각되는 부분은 생략하고, 알고 있더라도 주관적으로 다루는 게 좋겠다 싶은 내용만 다뤘습니다. ​ 이 책의 최고 장점은, 각 챕터의 마지막 소챕터로 "조언"소챕터가 들어가는데, 어느정도 전체 정리를 해주는 느낌이라는 점. 챕터를 빠르게 읽고 마지막 "조언"챕터만 다시 꼼꼼히 읽어보는 것으로 학습 효과가 좋은 것 같습니다. 1 기초 1.1 소개 ​ 1.4.2 초기화 complex 템플릿 컨테이너. {} 초기화로 정보 누락의 위험이 있는 타입 변환을 방지해줌. auto 는 타입..

A Tour of C++ : 옮긴이의 말

. . A Tour of C++ 책. C++ 의 개발자로 유명한 비야네 스트롭스트룹 선생님의 최신 서적입니다. 2019년 1월 발행. C++의 기본적인 내용들은 물론, C++ 11표준부터 개발 중인 20표준까지의 핵심 내용들을 깊이 있게 다룹니다. ​ 이번에도 읽으면서 내용 요약정리 작성 해보려고 합니다. 그런데, 왜 첫 글이 옮긴이의 말 부터냐.. ​ 인상깊은 내용들이라 다루지 않을 수 없었습니다. "왜 굳이 지금 C++를 공부해야 하는가?" 에 대한 물음에 대해, 대충 좋은 게 좋은 거 아닌가 하고 어설프게 생각했던 내용을 문장으로 명료하게 정의해줍니다. ​ 요약하자면 대략 이런 내용. "프로그래밍 언어의 발전은 IT 기술의 발전과 함께 해왔다. 필요한 기술과 솔루션들이 다양했고, 다양한 언어들이 성..

Google Apps Script 제한(Limit) 내용 정리

구글 드라이브의 Google Spreadsheet 와 Google Script 를 연동해서 여러가지 툴을 만들어 게임 개발에 활용하고 있습니다. 가장 일반적으론 데이터 Export 나 Code Generator 같은 것들. ​ 최근엔 G Suite API 를 활용한 툴을 만들고 있습니다. 그 중 LanguageApp.translate() API 로 번역 도구를 좀 만들고 있는데, 이래저래 만지다보니 몇 가지 메모해둬야 할 제한들이 있어서 적어봅니다. ​ 1. Call Count Limit LanguageApp.translate() 의 경우, 계정당 하루 호출 횟수 제한이 걸려있습니다. https://cloud.google.com/translate/quotas 할당량 및 한도 | Cloud Translat..

프로그래밍, 구현이 더 중요? 설계가 더 중요?

© annca, 출처 Pixabay ​ "프로그래밍은 잘 동작만 하면 된다" 프로그래밍을 하는 사람이라면 누구나 한 번쯤은 언젠가 들어봤을 이야기입니다. 맞는 말입니다. 하지만, 오해를 부르기도 좋은 말입니다. ​ 이 말은 마치, "[설계를 대충 해도,] 프로그래밍은 잘 동작만 하면 된다" 라고 말하는 것처럼 보입니다. ​ 이렇게 한 번 비유해볼까요. "설계를 대충 해도, 집은 잘 살기만 하면 된다" 어떤가요? 제가 느끼기엔, 앞뒤가 안 맞는 말로 보입니다. 집을 대충 설계하고 지었는데 잘 살아질 리가 없죠. 어딘가 분명 문제가 있을 겁니다. 고려되지 않은 배선, 수도관, 보일러, 에어컨 위치, 방음재, 단열재, 마감, 바닥재 등등등... 고려할 것이 많은 만큼, 살기 좋은 집을 지으려면 집을 대충 설계..

프로그래밍, OOP 설계 원칙 SOLID

© vishnurnair, 출처 Unsplash 객체 지향 프로그래밍(OOP) 언어로 프로그래밍을 시작했고, 여전히 OOP로 코딩하면서 게임을 개발하고 있습니다. 이런 패러다임을 바꿀 만큼의 더 큰 범주의 고민은 내공이 부족해서 잘 모르겠습니다. 다만, 앞으로도 최소 10년 이상은 OOP로 게임을 개발할 것 같습니다. ​ 그러려면, 오래됐지만 여전히 효과적이고 옳은 길을 제시하고 있는 OOP의 설계 원칙들에 대해서도 한 번씩은 공부해야 할 가치가 있다고 봅니다. 형식적으로 원칙을 따져가며 지키는 것도 문제가 될 수 있지만, 무지로 인해 원칙을 무시하고 짠 프로그램은 결코 좋은 설계가 될 수 없다고 생각합니다. ​ S.O.L.I.D 직역하면 "단단한", "견고한"의 뜻을 가집니다. 아마도 선배 프로그래머들..

파이썬(Python), 가지고 놀기 첫걸음

파이썬(Python)을 만져보고 있습니다. 게임 개발만 한다고 쓰던 프로그래밍 언어만 쓰다보니, 여태 파이썬을 만져보질 않았네요. 그래서 조금씩 취미삼아, 공부삼아 만져보고 있습니다. 로고가 귀여운 뱀 두마리라 맘에 듭니다. ​ 1. Python 설치 2. Python IDE 설치 3. Python 가지고 놀기 위 순서대로 진행해면 됩니다. ​ 먼저 파이썬 설치. 공식 홈페이지에서 다운로드 받아 설치하면 됩니다. 관련 링크들을 아래쪽에 몰아놨습니다. 금방 끝. 설치가 모두 끝나면 마지막에 Online Tutorial 과 Documentaion 링크도 알려주는데, 영어의 압박이 있으므로 한글자료를 찾아서 보는 걸 추천드립니다. 좋은 분들이 한글자료를 엄청 많이 공유해놨어요. ​ 그냥 메모장같은 에디터로 P..

728x90
반응형