본문 바로가기

Contents168

C언어 기초 part 2-3. 포인터 (20.03.27. 내용 추가) 포인터 NULL 포인터 포인터 연산 배열은 포인터다 포인터로 배열 접근 1. 포인터 포인터는 C와 C++ 언어가 갖는 특징이라고 할 수 있다. C에서는 포인터를 사용하기 때문에 컴퓨터에 대한 깊은 이해를 가능케 하고 더 빠른 프로그램을 작성할 수 있게 만든다. 대신 프로그래밍 자체에 더 오랜 시간이 걸릴 수 있고 에러가 발생할 가능성이 많다. (심지어 포인터를 사용하지 않는 언어에서도 포인터와 관련된 에러가 발생한다. null pointer exception 이 그 예이다.) 포인터란 메모리상의 주소값이다. 변수를 선언하면 그 변수를 저장할 메모리를 할당한다. 그리고 C언어에서는 그 메모리 주소값을 포인터 변수에 저장할 수 있다. 포인터 변수도 변수이기 때문에 그에 대한 주소값 또한 새로운 포인터 변수에.. 2020. 3. 3.
읽기 좋은 코드가 좋은 코드다. https://book.naver.com/bookdb/book_detail.nhn?bid=6871807 읽기 좋은 코드가 좋은 코드다 이 책은 코드를 작성할 때 언제나 적용할 수 있는 기본적인 원리와 실전적인 기술에 초점을 맞추고 있다. 누구나 쉽게 이해할 수 있는 코드를 예제로 사용하고, 각 장은 코딩과 관련한 다양한 측면을 파고든다. 그리하여 여러분이 어떻게 이해하기 쉬운 코드를 작성할 수 있는지를 보여준다. 딱 맞는 이름 짓기, 주석 달기, 포맷팅 등을 어떤 코드에도 적용할 수 있는 도움말과 함께 설명한다. 프로그램의 루프, 논리, 그리고 변수를 정리해서 복잡성과 혼동을 감소시킨다 book.naver.com 이 전에 읽었던 클린 코더와 비교하면 이 책은 보다 코드에 가깝다. 실제 코드의 예를 보여주.. 2020. 2. 27.
밀실 살인 게임 1 https://book.naver.com/bookdb/book_detail.nhn?bid=6387557 밀실살인게임 1 일본 추리작가 우타노 쇼고가 본격미스터리의 혼을 불사르다!제57회 일본추리작가협회상 등을 수상한 일본 추리작가 우타노 쇼고의 『밀실살인게임 - 왕수비차잡기』. 세상에 내놓는 작품마다 논쟁과 찬반의 중심에 올려온 저자가 2007년 발표한 장편소설이다. 사회적 통념에 비추어볼 때 반윤리적 기묘한 내용이 담겨 있어 일본 추리소설계를 발칵 뒤집어놓았다. 단순히 써보고 싶은 트릭이 있어서 사람을 죽였다고 고백하는 등 순전히 지적 만족과 재미를 위해 살인을 벌이는 book.naver.com 아마 처음(?)으로 읽어 본 추리 소설이다. 보통은 판타지 소설을 가장 많이 읽는다. 카카오 페이지에서 읽는.. 2020. 2. 22.
디지털 노마드 https://book.naver.com/bookdb/book_detail.nhn?bid=12556939 디지털 노마드 플랫폼 비즈니스를 장악한 빅데이터 인재들 ‘디지털 노마드’ 노트북 한 대만 있으면 내가 일하고 싶을 때, 일하고 싶은 만큼 일하는 미래형 직업으로 언제 어디서든 돈을 벌고, 많이 벌고, 빨리 벌고, 평생 벌 수 있다! ‘우리는 왜, 무엇을 위해 일하는 걸까?’ ‘갑갑한 사무실을 벗어나 내가 원하는 공간에서 일할 수는 없을까?’ 직장인이라면 누구나 한 번쯤 해봤을 상상을 실제 행동으로 옮기며 살아가는 사람이 있다. 바로 ‘디지털 노마드족’이다. ‘디지털 노 book.naver.com 이 책을 읽은지는 좀 됐다. 한 한 달 정도..? 읽으면서 제목 보고 기대했던 것과는 다르다는 느낌을 받았.. 2020. 2. 22.
클린 코더(The Clean Coder) 개인적으로 책 읽는 것을 잘 안 좋아한다. 그래도 군대에 있는 동안 뭐라도 남기려고 노력하고 있다. 그 중 하나가 책 읽기다. 책 읽는 습관은 사회에 복귀한 뒤에도 계속 이어갈 생각이고, 리뷰를 올리기 위해 새로운 카테고리도 만들었다. 아마 여기에 올리는 글의 상당 부분은 프로그래밍과 관련된 책이지 않을까 싶다. 오늘 책 한 권을 다 읽었다. 정확히 말하자면 부록이 남아있긴 한데 내일 근무 서면서 마저 읽을 것 같다. 저자는 로버트 마틴으로(밥 아저씨) 프로그래머로 유명한 사람이라는데 누군지 모르겠다. 밥 아저씨를 검색하면 그림 그리는 "참 쉽죠?" 아저씨가 나온다. 물론 내가 읽은 건 번역서다. 번역은 나쁘지 않았지만 간혹 가독성이 떨어지는 문장이 있다. 예를 들면 긍정문으로 쓸 수 있는 내용을 부정+.. 2020. 2. 3.
C언어 기초 part 2-2. 다차원 배열 2차원 배열 다차원 배열 1. 2차원 배열 2차원 배열은 배열의 확장이다. 기존의 1차원 배열이 x축만 있는 구조였다면 2차원 배열은 x, y축까지 갖는다고 보면 된다. 필자는 2차원 배열을 행렬로 생각하고 프로그래밍 한다. 즉, 논리만 맞으면 편한대로 생각해도 된다. 프로그램 상으로 4차원, 5차원 배열도 구현이 가능한데 5차원 배열을 표나 그림으로 나타낼 수는 없지 않은가? 구조는 1차원 배열과 동일하다. 메모리상에 연속적으로 할당된다. 선언 방법도 예상하다시피 int table[5][5]; 와 같이 선언한다. 필자는 이 배열은 table[행][열]로 해석한다. 메모리상에서 2차원 배열은 1행의 배열이 모두 할당되고 연속으로 2행의 배열이 할당되는 식이다. 즉, 메모리상에서 다음과 같이 정렬된다. t.. 2020. 1. 31.
워크넷 IT직무 기본역량검사 결과 옆에서 선임이 워크넷에서 재밌어 보이는 걸 하고 있길래 나도 워크넷에 들어가 봤다. 선임이 했던 검사와는 다른 검사지만 눈길이 가는 검사가 있어서 재미삼아 해 봤다. (원래는 워크넷이라는 사이트도 모르고 있었다.) 적성 부분은 문제와 제한시간이 존재하고 인성 영역은 설문조사같이 선택하는 것이다. 추리력은 자신 있었는데 생각보다 못 풀었고, 언어력은 못 풀었는데 생각보다 점수는 잘 나왔고(여러 가지 문제 유형이 있었는데 그 중 한 가지는 잘 풀어서 그런듯) 집중력은 낮다고 생각하는데 단지 문제 유형이 내가 풀기 쉬운 문제였다. 물론 IQ테스트나 이런 검사들은 애초에 문제를 다 못 풀정도의 시간을 안 주는데, 그래도 문제를 다 못 풀면 아쉬움이 남는다. (추리력 유형 중 하나랑 집중력 문제는 다 풀었다.) .. 2020. 1. 23.
코딩 관련 책 읽기 군대에 있는 시간이 아까워서 근무가 없는 날엔 22시~24시 도서관(or 사지방) 연등을 한다. 개발을 하고 싶지만 환경을 구축해봐야 console log 정도만 가능하다. 그래서 군대에서는 이론 공부 위주로 하자는 생각에 작년에 데이터 통신을 공부했다. 이후 디자인 패턴을 공부하고 (구름 ide이용)java로 간단한 구조만 코딩하고 있었으나... gui가 너무 그리워서 웹이라도 공부하자는 생각에 html, css, js, node.js를 공부하기 시작했다. node.js를 제외하고 원래 공부해봤던 애들이라 가벼운 마음으로 시작했고 현재 html은 끝낸 상태이다. 이제 css를 공부하려던 참이나 강의가 아직 다 안 온라온 상태이다. 이번에 외박 나갔다가 여러 가지 책을 구매했다. 소설책 한 권, ... .. 2020. 1. 21.
C언어 기초 part 2-1. 배열 part 2. 배열과 포인터 배열 1. 배열 배열 공부에 앞서 배열이 필요한 상황, 현재로서는 해결할 수 없는 상황을 가정해 보자. 예를 들어 다음과 같은 상황이 있다. 한 한급의 인원은 30명이고 각각 수학 성적이 주어진다. 수학 성적의 평균을 구하시오. 이를 해결하기 위해 지금까지 공부한 것만을 이용하면 다음과 같은 상황이 된다. int math_score1, math_score2, math_score3, ...; 배열을 이용한다면 성질이 비슷한 여러 개의 변수를 하나의 이름으로 묶어 정의할 수 있다. 그 꼴은 다음과 같다. // 형태 1 //자료형 이름[길이]; int math_score[30]; // 길이 30만큼 메모리 공간이 할당된다. (int는 4byte이므로 4*30=120byte) // .. 2020. 1. 21.