목록분류 전체보기 (96)
Scientia Conditorium
[기본 미션] p.51의 확인 문제 3번, p.65의 확인 문제 3번 풀고 인증하기 1. 프로그램이 실행되려면 반드시 '메모리'에 저장되어 있어야 합니다. 이 문장이 중요한 이유는 운영체제와 연관되어서 그렇습니다. 흔히들 사용하고 있는 Window 윈도우 운영체제 역시 프로그램의 하나 입니다. 따라서 컴퓨터 전원 버튼을 누르면 가장 먼저 운영체제 프로그램이 메모리에 적재됩니다. 책 261쪽을 보면 '운영체제는 매우 특별한 프로그램이기 때문에 항상 컴퓨터가 부팅될 때 메모리 내 커널 영역(Kernel space)이라는 공간에 따로 적재되어 실행됩니다' 라고 서술되어있습니다. 물론 세부적으로는 BIOS → 부트로드 → 커널영역 → 초기화 프로세스 순서로 동작합니다. 2. 2의 보수는 현재 부호있는 정수를 표..
[책리뷰] 이것이 자료구조+알고리즘이다 with C언어 이것이 시리즈 중 자료구조와 알고리즘이 합친 책이 등장했다. 예전에 'C언어로 쉽게 배우는 자료구조' 책이 유명했지만, 그보다는 이 책이 훨씬 더 깔끔하고 좋다. 제목에 with C언어를 붙여서 혼동을 최소화 시킨 것도 마음에 들었다. 자바와 파이썬 왕국에서 C언어로 책을 쓰다니! 라는 사람들이 있을 것 같지만, 자료구조만큼은 메모리 관리가 가능한 언어로 학습해야된다는 것이 내 지론이다. 이유는 어떠한 언어를 쓰던 컴퓨터 내부적으로는 비슷하게 동작하는데, 특히 자료구조의 경우 메모리 구조를 알고 있어야 이해하기 쉽기 때문이다. 따라서 C언어를 통해 메모리 관리를 직접 해보면서 자료구조의 동작 원리를 이해하는 것이 좋다. 이 부분에 대해서는 홍정모 박..
[책리뷰] 똑똑한 코드 작성을 위한 실전 알고리즘(Learning Arlgorithms) 학부 과정에서 알고리즘 수업을 수강했거나 기본적인 알고리즘을 알고 있는 이후에 보면 좋은 책이다. 여러 알고리즘을 소개하기 보다는 대표적으로 많이 사용하고 널리 알려진 알고리즘들을 조금 더 심도있게 다루고 있는 책이라고 생각하면 된다. 책에서 다루는 알고리즘으로는아래와 같다. 알고리즘 분석(시간복잡도, 공간복잡도, 성능 비교 방법) 해싱(키, 해시함수, 연결 리스트, 동적 해시 테이블, 완벽한 해싱) 힙(최대 이진 힙, 배열로 이진 힙 구성, 엔트리 이동의 구현) 정렬(교환, 선택, 삽입, 재귀, 병합, 퀵, 힙, 팀) 이진 트리(이진 탐색 트리, 탐색, 제거, 순회, 성능 분석, 자가 균형 이진 트리) 그래프(모델..
[책리뷰] 전문가를 위한 C C++의 교과서였던 '전문가를 위한 C++'에 이어서 C 역시 탄생하였다. C언어의 정신은 C99 Rationale에서 다음과 같이 묘사하고 있다. 프로그래머를 믿어라(Trust the programmer) 프로그래머가 작업을 못하게 방해하지 마라(Don't prevent the programmer from doing what needs to be done) 언어를 작고 간단하게 유지하라(Kepp the language samll and simple) 명령을 실행하는 방법을 하나만 제공하라(Provide only one way to do an operation) 호환성은 장담할 수 없더라도 빨리 작동하게 만들어라(Make it fast, even if it is not gua..
[에픽게임즈] Alan Wake(앨런 웨이크) 한글 패치 방법 에픽게임 런쳐를 시작하면 라이브러리 창으로 열릴 것입니다. 왼쪽에 보이시는 언리얼 엔진을 눌러주세요 이제 왼쪽 아래에 '설정' 탭을 확인할 수 있습니다 설정을 눌러주세요 맨 아래쪽으로 이동하면 'ALAN WAKE' 탭이 있습니다. 여기를 누르면 '부가 명령줄 인수' 가 비활성화 되어있는데, 체크해주시면 입력 창이 생성됩니다. 여기에 -locale=ko 를 입력해주시면 됩니다.
[책리뷰] 헤드퍼스트 디자인 패턴(개정판) 한줄 요약 : 프로그래머라면 반드시 가지고 있어야 할 교과서 디자인 패턴 관련 책으로 가장 유명한 것은 'GoF의 디자인 패턴' 일 것이다. 그러나 회사 선배에게도 들었지만 대부분 '헤드퍼스트 디자인 패턴' 책을 더 추천해주신다. 책의 첫 챕터에서는 디자인 패턴을 왜 배워야하고 알아야 하는지를 상황과 코드를 통해 설명해준다. 디자인 패턴 공부를 위해 이 책을 접했다면 옮긴이의 말을 반드시 읽어야 한다. 프로그래머들 중에서 디자인패턴 공부를 숙제처럼 여기고 반드시 해야되는 숙제처럼 여기는 사람들이 종종 있다. 알아두어야 하기는 하지만 의무감을 가질 필요는 없다. 옮긴이의 말에서는 아래와 같이 설명한다. 디자인 패턴이 만병통치약은 아닙니다! 디자인 패턴은 코드를 재..
[C++] struct 와 class 의 차이점 결론부터 말하자면 C++에서 struct와 class의 차이점은 없다. 먼저 isocpp의 답변부터 살펴보도록 하자. https://isocpp.org/wiki/faq/classes-and-objects#struct-vs-class Standard C++ isocpp.org What’s the difference between the keywords struct and class? The members and base classes of a struct are public by default, while in class, they default to private. Note: you should make your base classes explicitly ..
[C++] 이중 map - map 안에 map 사용하기 출처 : https://en.cppreference.com/w/cpp/container/map std::map 정의 template class map; std::map은 고유 키가 있는 키-값 쌍을 포함하는 정렬된 컨테이너 입니다. 키는 Compare 함수 비교 기능을 사용하여 정렬되고, 검색, 제거 및 삽입에는 로그 복잡성을 가집니다. 맵은 일반적으로 red-black trees로 구현됩니다. 기본적인 사용법 #include #include #include #include void print_map(..
[책리뷰] 혼자 공부하는 컴퓨터구조 + 운영체제 컴퓨터 공학과 전공자 필수 과목 중 하나인 컴퓨터 구조와 운영체제. 이 과목들의 혼공 시리즈가 나와서 대단히 기쁘다. 결론은 역시나 혼공 시리즈답게 혼자서 충분히 공부할 수 있도록 기초 개념을 잘 잡아준다. 비전공자들은 구매해서 쭈욱 읽어보는 것을 적극 추천한다. 각 챕터에 대한 간략한 후기를 아래 나열해보는 것으로 이번 리뷰를 해보겠다. Chapter 01 컴퓨터 구조 시작하기 컴퓨터 구조의 큰 그림과 공부해야 하는 이유를 설명해준다. 책에서도 설명되어있지만 컴퓨터 구조는 컴퓨터공학과의 전공 필수과목 중 하나이며 대부분의 채용 공고에서 컴퓨터구조를 중요시 여긴다. 서울대학교 컴퓨터공학과 교과목 정보를 살펴보면 2020입학 기준으로 컴퓨터 구조는 전공필수 ..
[C++] 이미지 파일 ↔ 바이너리 파일 변환하기 #include #include #include int main() { std::ifstream image("pop_cat.png", std::ios::in | std::ios::binary); std::ofstream binary("binary_image_data.txt", std::ios::out | std::ios::binary); char ch; while (!image.eof()) { ch = image.get(); binary.put(ch); } std::cout