전체 글 75

2023년 회고

2023년이 되기 직전에 사수라고 할 수 있던 회사 동료가 이직했었다. 입사한 지 얼마 안 된 시점에서 그가 맡고 있던 업무들을 기본적으로 내가 맡아야 했기 때문에, 그리고 평소에 이것저것 물어볼 수 있었던 선배가 사라진다는 생각에 걱정이 많았었다. 그렇게 2023년이 되었지만, 생각보다 큰일이 일어나지는 않았었다. 업무를 함께 맡아 줄 다른 동료가 있었고, 여전히 모르는 것을 물어볼 수 있는 동료들이 있었다. 그리고 전임자가 짠 코드를 분석하고, 이슈가 생길 때마다 레거시 코드를 더 들여다보면서, 문제 해결 능력은 더 향상됐고, 업무 이해도도 더 빨리 증가했다. 그렇게 2023년에 꽤 많은 것들을 폭발적으로 배웠다는 생각이 든다. 가장 좋았던 것은 점차 스스로 개발 계획을 수립하고, 그것을 구현할 수 ..

커리어 2024.01.12

[읽은 책 소개] 역행자 - 자청

http://aladin.kr/p/vPb5C 역행자 어느 날 혜성처럼 나타나 자수성가의 아이콘이 된 청년, 자기계발 유튜버 자청이 깨달은 인생의 치트기를 탈탈 털어 넣은 그의 첫 책 《역행자》가 드디어 출간된다. 수많은 ‘자청 챌린저’들 www.aladin.co.kr 자청이 쓴 역행자라는 책을 사서 읽게 되었다. 구입 결정을 하는 데는 10분이 채 걸리지 않은 것 같다. 그만큼 작가가 나에게 영향력을 미치고 있었다는 뜻일 것이다. '자청'이라는 사람을 처음 알게 된 것은 유튜브에서였다. '어떻게 살아야 하는가'에 대해 한참 고민이 많았던 시간이 있었다. 그 시간 동안 유튜브에서 몇몇 동기부여가 되는 영상들을 접하게 되었고 그중 자청이라는 사람이 있었다. 자청은 자수성가 청년의 준말이었다. 자청은 나에게 ..

독서 2022.06.17

관계형 데이터 모델 - 정규형이란?

관계형 데이터베이스는 여러 테이블들을 JOIN하는 방식으로 원하는 형식의 데이터를 얻을 수 있다. 이 때 각 테이블의 정보가 중복되지 않고, 독립적으로 구조화하기 위해 정규화 과정을 거친다. 이 때 정규형(Normal Form)은 보통 3단계로 분류한다. 제1정규형(1NF) 원자 값: 각 셀에는 고유한 단일 값이 포함된다. 테이블을 변경하지 않고 데이터를 추가할 수 있다. 서로 다른 관계를 서로 다른 테이블로 분리 외래 키와 함께 테이블 간의 관계 유지 제2정규형(2NF) 1NF를 만족 테이블의 모든 열은 Primary Key에 의존 제3정규형(3NF) 2NF를 만족 No transitive dependencies 3NF를 사용하는 이유 데이터를 업데이트하고 싶을 때 한 개의 테이블만 업데이트하면 되도록..

Development 2022.06.16

SQL과 NoSQL은 언제 써야할까?

SQL(관계형 데이터베이스)를 사용하면 좋은 점에는 다음과 같은 것들이 있다. SQL 쿼리 언어를 활용하여 유연하게 쿼리를 적용할 수 있다. 쿼리가 아닌 데이터를 모델링 한다. JOINS를 활용할 수 있다. 집계 및 분석을 수행할 수 있다. 빠른 검색을 위해 보조 색인을 추가할 수 있다. 데이터 볼륨이 작을 때 단순성을 위해 사용 ACID 트랜잭션: 오류, 정전이 발생한 경우에도 유효성을 보장하여 데이터의 무결성을 유지 비즈니스 요구 사항에 맞춰서 변경하기 용이하다. 반면 NoSQL(비관계형 데이터베이스)를 사용하면 좋은 경우들은 이러하다. 다양한 데이터 타입 형식으로 저장 많은 양의 데이터: 수평 확장이 가능 수평적 확장성 높은 처리량: 빠른 읽기 및 쓰기 성능 유연한 스키마: 모든 row에서 사용되지..

Development 2022.06.15

비전공 개발자의 첫 취업 (2)

코딩 부트캠프 부트캠프는 색다른 경험이었다. 활동은 완전히 원격으로 이루어졌다. 게더타운이라는 게임 같은 실시간 영상 통화 프로그램을 활용했는데, 나중에는 거의 현장에서 함께 하는 기분이 들었다. 매일 아침 9시에 접속하여 사람들과 인사를 나누고, 거의 밤 12시 혹은 그 이후까지 하루 종일 프로그램을 수행했다. 강의는 부트캠프에서 제공하는 강의를 들었다. 그렇기에 그 강의들이 다른 교육 매체의 강의들에 비해 아주 뛰어나지는 않을 가능성도 있었다. 그래도 개인적으로 이해하기 좋은 유익한 강의였던 것 같다. 어떠한 부트캠프를 선택하든 교육 프로그램이 완벽한 곳은 없지 않을까 싶다. 떠먹여 주는 대로만 받아먹는 것으로는 분명 부족할 수 있다. 자신이 배워야 할 것들을 체크해보고 배우지 않는 부분이 있다면 스..

Development 2022.06.12

[TIL] 코틀린 쿡북 / 실전 카프카

코틀린 쿡북 2장 코틀린 기초 파트를 읽고 있는데 정말 기초 내용인지는 모르겠다. 아직은 코틀린으로 한글자도 코딩할 수 없을 것 같다. 코틀린으로는 거듭 제곱하는 것도 간단하지 않은 모양이다. ansible을 통해 zookeeper를 설치하는 과정에서 Host key verification failed 에러가 발생했다. /etc/ansible/ansible.cfg 에서 [defaults] host_key_checking = False 라인을 추가하여 문제가 해결되었다. EC2로 파일을 복사하기 위해서 scp 명령어를 사용했다. scp -i /path/my-key-pair.pem /path/my-file.txt ec2-user@my-instance-public-dns-name:path/ EC2 인스턴스에 ..

Development 2022.06.09

비전공 개발자의 첫 취업 (1)

최근 개발자로서 취업에 성공했다. 비전공자이고 개발 공부를 시작한 지도 얼마 되지 않았기 때문에 아직 배울 것이 많고 갈 길이 멀다. 하지만 한 명의 '개발자'로서 경력을 시작할 수 있게 되었고, 따라서 현업에서 더 많을 것을 배울 수 있게 되었다. 취업까지의 과정이 어땠는지 짧게 공유하고 싶다. 작은 스타트업에서 인턴을 시작 코딩을 배우게 된 가장 큰 계기는 작은 스타트업에서 인턴으로 일할 기회를 얻었던 것이었다. 당시 나는 어떤 삶을 살아야 할지 고민이 많았다. 책을 읽는 데 가장 많은 시간을 보냈고, 창업 관련 준비도 해보고 있었다. 어쨌든 일하게 된 회사에서는 코딩 능력을 필요로 하고 있었다. 나는 당시 코딩할 수 있는 능력이 거의 없었다. 대학교 1학년 때 수강했던 기초 과목이 전부였다. 그래서..

Development 2022.06.05

[TIL] 트리 알고리즘 강의, 문제 풀이 / 면접 정보 공유 서비스 프로젝트

자바스크립트 코딩 테스트 https://www.acmicpc.net/problem/9372 9372번: 상근이의 여행 첫 번째 줄에는 테스트 케이스의 수 T(T ≤ 100)가 주어지고, 각 테스트 케이스마다 다음과 같은 정보가 주어진다. 첫 번째 줄에는 국가의 수 N(2 ≤ N ≤ 1 000)과 비행기의 종류 M(1 ≤ M ≤ 10 000) 가 www.acmicpc.net 문제 자체가 함정인 것 같다. 트리 알고리즘을 시도하다가 필요가 없다는 사실을 깨달았다. const fs = require('fs') const input = fs.readFileSync('dev/stdin').toString().trim().split('\n') const [_, ...cases] = input let index = ..

Development 2022.02.14

[WIL] 프론트엔드, 백엔드 분리 프로젝트 / 알고리즘 공부

자바스크립트 코딩테스트 https://www.acmicpc.net/problem/19583 19583번: 싸이버개강총회 첫번째 줄에는 개강총회를 시작한 시간 S, 개강총회를 끝낸 시간 E, 개강총회 스트리밍을 끝낸 시간 Q가 주어진다. (00:00 ≤ S < E < Q ≤ 23:59) 각 시간은 HH:MM의 형식으로 주어진다. 두번째 줄부터는 www.acmicpc.net const fs = require('fs') const input = fs.readFileSync('dev/stdin').toString().trim().split('\n') const [timesString, ...logsString] = input const times = timesString .split(' ') .map((x) =..

Development 2022.02.13

[TIL] 새 프로젝트 백엔드 구현 / 해쉬 알고리즘 / 스택, 큐 문제

새 프로젝트 '지금 우리 면접은' 백엔드 기본 구현 완료 https://github.com/kiwihannah/csProj_back GitHub - kiwihannah/csProj_back Contribute to kiwihannah/csProj_back development by creating an account on GitHub. github.com 심화 기능 추가 예정. 해쉬 알고리즘 강의 수강 자바스크립트 코딩테스트 스택 문제 https://www.acmicpc.net/problem/5002 5002번: 도어맨 첫째 줄에 정인이가 기억할 수 있는 가장 큰 차이 X a+b, 0)에서 뒤에 0으로 초기값을 넣어주지 않으면, 런타임 에러가 난다는 사실을 몇 시간만에 알았다. 이유는 잘 모르겠다.

Development 2022.02.12