Log.recent(bluayer)
-
Retrospection
SOPT Makers 활동 회고
서론 어쩌다보니 거의 1년 만에 블로그에 글을 쓰게 되었다. 회사에서 개인 블로그에 글을 쓰는 것에 좀 민감해하는 부분이 있어서 블로그에서 테크니컬한 컨텐츠를 다루지 않다보니, 크게 쓸 얘기가 많지 않아서 글 쓰는 것을 좀 멀리하게 된 거 같다. 물론 물리적인 시간이 없기도 하고, 내 블로그에 글 쓰는 것보다 회사 블로그에 글을 써보고 싶은 욕구가 있어서 미뤄졌다. 이 글은 그래도 써야지 써야지하고 미루던 메이커스 활동 회고다. 나름대로 아예 초창기 활동 기수인 1~2기를 하기도 했고 거의 1년에 가까운 기간동안 애정을 가지고 활동해서 회고를 써야 겠다는 생각을 많이 했었다. 당연히 내 홈그라운드인 서버 파트에서 활동했고, 서버 리드도 한 기수하고, 기회가 닿아서 솝트 앱잼 멘토로도 갔다. 생각해보니 내..
-
Retrospection
2022년 회고
서론 2022년 회고를 쓰기에 앞서, 2020년과 2021년 회고를 읽어봤습니다. 직장을 다니기 시작하면서 매년 회고를 작성하고 있는데요, 해마다 감회가 새롭습니다. 스스로 성장한 모습이 재밌기도 하고 또 다음 해에는 어떤 일들을 겪고 성장해 있을지 궁금하기도 합니다. 그리고 늘 제 곁을 지켜주는 좋은 사람들이 해마다 늘어서 감사하고 또 고마울 따름입니다. 저의 2022년을 상징하는 키워드라고 한다면 "의외의 기회들"인 것 같습니다. 의외의 기회 (1) 올해 생긴 첫 번째 기회는 링크드인을 통해 찾아왔습니다. 국내에서 유명한 핀테크 회사의 리쿠르터 분이 링크드인을 통해 지원해볼 생각이 있는지 물어봐주신 것이 계기였습니다. 당시에 진행하고 있던 프로젝트가 계속 Drop될까 말까 하던 상황이어서 회사에 회의..
-
Architecture&Design
Notion에서 Postgres를 샤딩하면서 얻은 교훈 (번역)
역자 서론 본 글은 노션 블로그에 작성되어 있는 Garrett Fidalgo의 코끼리 방목 : Notion에서 Postgres를 샤딩하면서 얻은 교훈 ("코끼리"는 PostgreSQL의 마스코트라, 코끼리 방목이라는 표현을 사용한 것 같습니다)을 읽고 번역한 글입니다. 참고로 Notion 팀에 허락을 받고 번역한 글이 아니며, 따라서 해당 글은 언제든지 내려갈 수 있습니다. 또한 원본의 글 의미를 살리고자 최대한 직역하고자 노력했지만, 직역한 경우 너무 이해가 안되는 일부분은 의역하거나 역자의 설명을 달아두었습니다. 서론 올해 초에 우리는 예정된 유지 관리를 위해 5분동안 Notion을 중단했습니다. 우리는 "향상된 안정성과 성능"을 암시했고, 이를 위해서 몇달동안 매우 긴박하고 집중적으로 팀 규모의 작..
-
Other
Google True Time(구글 트루 타임)
서론 데이터 중심 어플리케이션 책을 읽으면서 스터디 하던 중, Google True Time에 관한 이야기가 나왔다. 해당 내용이 더 궁금해서 찾아본 내용을 정리했다. https://bluayer.com/60 Chapter 8. 분산 시스템의 골칫거리 - Part 1 소개 본 글은 데이터 중심 어플리케이션(마틴 클레프만)으로 스터디하며 해당 책의 내용을 요약 정리한 내용입니다. https://github.com/ddia-study/ddia-study GitHub - ddia-study/ddia-study: 데이터 중심 어플.. bluayer.com Google True Time API란? 분산 시스템 내에서 시계는 물리적이든, 논리적이든 잘못될 가능성이 매우 높다. 시계 읽기를 어떤 시점으로 생각하는 것..
Log.recent(bluayer)
-
SOPT Makers 활동 회고
서론 어쩌다보니 거의 1년 만에 블로그에 글을 쓰게 되었다. 회사에서 개인 블로그에 글을 쓰는 것에 좀 민감해하는 부분이 있어서 블로그에서 테크니컬한 컨텐츠를 다루지 않다보니, 크게 쓸 얘기가 많지 않아서 글 쓰는 것을 좀 멀리하게 된 거 같다. 물론 물리적인 시간이 없기도 하고, 내 블로그에 글 쓰는 것보다 회사 블로그에 글을 써보고 싶은 욕구가 있어서 미뤄졌다. 이 글은 그래도 써야지 써야지하고 미루던 메이커스 활동 회고다. 나름대로 아예 초창기 활동 기수인 1~2기를 하기도 했고 거의 1년에 가까운 기간동안 애정을 가지고 활동해서 회고를 써야 겠다는 생각을 많이 했었다. 당연히 내 홈그라운드인 서버 파트에서 활동했고, 서버 리드도 한 기수하고, 기회가 닿아서 솝트 앱잼 멘토로도 갔다. 생각해보니 내..
2023.11.15 21:31 -
2022년 회고
서론 2022년 회고를 쓰기에 앞서, 2020년과 2021년 회고를 읽어봤습니다. 직장을 다니기 시작하면서 매년 회고를 작성하고 있는데요, 해마다 감회가 새롭습니다. 스스로 성장한 모습이 재밌기도 하고 또 다음 해에는 어떤 일들을 겪고 성장해 있을지 궁금하기도 합니다. 그리고 늘 제 곁을 지켜주는 좋은 사람들이 해마다 늘어서 감사하고 또 고마울 따름입니다. 저의 2022년을 상징하는 키워드라고 한다면 "의외의 기회들"인 것 같습니다. 의외의 기회 (1) 올해 생긴 첫 번째 기회는 링크드인을 통해 찾아왔습니다. 국내에서 유명한 핀테크 회사의 리쿠르터 분이 링크드인을 통해 지원해볼 생각이 있는지 물어봐주신 것이 계기였습니다. 당시에 진행하고 있던 프로젝트가 계속 Drop될까 말까 하던 상황이어서 회사에 회의..
2022.12.25 00:18 -
Notion에서 Postgres를 샤딩하면서 얻은 교훈 (번역)
역자 서론 본 글은 노션 블로그에 작성되어 있는 Garrett Fidalgo의 코끼리 방목 : Notion에서 Postgres를 샤딩하면서 얻은 교훈 ("코끼리"는 PostgreSQL의 마스코트라, 코끼리 방목이라는 표현을 사용한 것 같습니다)을 읽고 번역한 글입니다. 참고로 Notion 팀에 허락을 받고 번역한 글이 아니며, 따라서 해당 글은 언제든지 내려갈 수 있습니다. 또한 원본의 글 의미를 살리고자 최대한 직역하고자 노력했지만, 직역한 경우 너무 이해가 안되는 일부분은 의역하거나 역자의 설명을 달아두었습니다. 서론 올해 초에 우리는 예정된 유지 관리를 위해 5분동안 Notion을 중단했습니다. 우리는 "향상된 안정성과 성능"을 암시했고, 이를 위해서 몇달동안 매우 긴박하고 집중적으로 팀 규모의 작..
2022.06.20 19:00 -
Google True Time(구글 트루 타임)
서론 데이터 중심 어플리케이션 책을 읽으면서 스터디 하던 중, Google True Time에 관한 이야기가 나왔다. 해당 내용이 더 궁금해서 찾아본 내용을 정리했다. https://bluayer.com/60 Chapter 8. 분산 시스템의 골칫거리 - Part 1 소개 본 글은 데이터 중심 어플리케이션(마틴 클레프만)으로 스터디하며 해당 책의 내용을 요약 정리한 내용입니다. https://github.com/ddia-study/ddia-study GitHub - ddia-study/ddia-study: 데이터 중심 어플.. bluayer.com Google True Time API란? 분산 시스템 내에서 시계는 물리적이든, 논리적이든 잘못될 가능성이 매우 높다. 시계 읽기를 어떤 시점으로 생각하는 것..
2022.06.10 10:53 -
Chapter 7. Transaction(트랜잭션) - Part 1
소개 본 글은 데이터 중심 어플리케이션(마틴 클레프만)으로 스터디하며 해당 책의 내용을 요약 정리한 내용입니다. https://github.com/ddia-study/ddia-study GitHub - ddia-study/ddia-study: 데이터 중심 어플리케이션 설계 데이터 중심 어플리케이션 설계. Contribute to ddia-study/ddia-study development by creating an account on GitHub. github.com 서론 트랜잭션은 애플리케이션에서 몇 개의 읽기와 쓰기를 하나의 논리적 단위로 묶는 방법이다. (중략) 트랜잭션은 자연법칙이 아니다. 데이터베이스에 접속하는 애플리케이션에서 프로그래밍 모델을 단순화하려는 목적으로 만든 것이다. ACID의 의미..
2022.06.10 10:38 -
Chapter 10. Batch Processing(일괄 처리)
소개 본 글은 데이터 중심 어플리케이션(마틴 클레프만)으로 스터디하며 해당 책의 내용을 요약 정리한 내용입니다. https://github.com/ddia-study/ddia-study GitHub - ddia-study/ddia-study: 데이터 중심 어플리케이션 설계 데이터 중심 어플리케이션 설계. Contribute to ddia-study/ddia-study development by creating an account on GitHub. github.com 서론 서비스(온라인 시스템) 일괄 처리 시스템(오프라인 시스템) : 처리량이 대표적인 지표 스트림 처리 시스템 : near-real-time processing / nearline processing 유닉스 도구로 일괄 처리하기 단순 로그 ..
2022.06.10 10:32 -
Chapter 9. 일관성과 합의 - Part 2
소개 본 글은 데이터 중심 어플리케이션(마틴 클레프만)으로 스터디하며 해당 책의 내용을 요약 정리한 내용입니다. https://github.com/ddia-study/ddia-study GitHub - ddia-study/ddia-study: 데이터 중심 어플리케이션 설계 데이터 중심 어플리케이션 설계. Contribute to ddia-study/ddia-study development by creating an account on GitHub. github.com 분산 트랜잭션과 합의 합의의 목적 : 여러 노드들이 뭔가에 동의하게 만드는 것 노드가 동의하는 것이 중요한 상황 리더 선출 : Split brain 원자적 커밋 : 모든 노드가 트랜잭션 결과에 동의하게 만들어야 함. 원자적 커밋과 2PC 트..
2022.06.10 10:30 -
Chapter 8. 분산 시스템의 골칫거리 - Part 2
소개 본 글은 데이터 중심 어플리케이션(마틴 클레프만)으로 스터디하며 해당 책의 내용을 요약 정리한 내용입니다. https://github.com/ddia-study/ddia-study GitHub - ddia-study/ddia-study: 데이터 중심 어플리케이션 설계 데이터 중심 어플리케이션 설계. Contribute to ddia-study/ddia-study development by creating an account on GitHub. github.com 지식, 진실, 그리고 거짓말 분산 시스템에는 공유 메모리가 없고 지연 변동이 큰 신뢰할 수 없는 네트워크를 통해 메시지를 보낼 수 있을 뿐이며 부분 장애, 신뢰성 없는 시계, 프로세스 중단에 시달릴 수 있다. 신뢰성 없는 시스템 모델에서 잘..
2022.06.10 10:28 -
Chapter 8. 분산 시스템의 골칫거리 - Part 1
소개 본 글은 데이터 중심 어플리케이션(마틴 클레프만)으로 스터디하며 해당 책의 내용을 요약 정리한 내용입니다. https://github.com/ddia-study/ddia-study GitHub - ddia-study/ddia-study: 데이터 중심 어플리케이션 설계 데이터 중심 어플리케이션 설계. Contribute to ddia-study/ddia-study development by creating an account on GitHub. github.com 서론 분산 시스템을 다루는 것은 뭔가 잘못될 수 있는 새롭고 흥미진진한 방법이 많다는 점이다. 결국 엔지니어로서의 우리의 임무는 모든 게 잘못되더라도 제 역할을 해내는 시스템을 구축하는 것이다. 결함과 부분 장애 부분 장애(partial f..
2022.06.10 10:26 -
Chapter 6. Partitioning(파티셔닝)
소개 본 글은 데이터 중심 어플리케이션(마틴 클레프만)으로 스터디하며 해당 책의 내용을 요약 정리한 내용입니다. https://github.com/ddia-study/ddia-study GitHub - ddia-study/ddia-study: 데이터 중심 어플리케이션 설계 데이터 중심 어플리케이션 설계. Contribute to ddia-study/ddia-study development by creating an account on GitHub. github.com 서론 데이터셋이 매우 크거나 질의 처리량이 매우 높다면 복제만으로는 부족하고 데이터를 파티션을 쪼갤 필요가 있다. 이 작업을 샤딩이라고도 한다. 데이터 파티셔닝을 원하는 주된 이유는 확장성이다. 파티셔닝과 복제 보통 복제와 파티셔닝을 함께 ..
2022.06.10 10:22 -
Chapter 5. Replication(복제)
소개 본 글은 데이터 중심 어플리케이션(마틴 클레프만)으로 스터디하며 해당 책의 내용을 요약 정리한 내용입니다. https://github.com/ddia-study/ddia-study GitHub - ddia-study/ddia-study: 데이터 중심 어플리케이션 설계 데이터 중심 어플리케이션 설계. Contribute to ddia-study/ddia-study development by creating an account on GitHub. github.com 서론 키워드만 간단보기 : https://johngrib.github.io/wiki/d-i-a-05-replication/ 우연히 찾은 저자의 유튜브 : https://www.youtube.com/watch?v=uNxl3BFcKSA (quo..
2022.06.10 10:21 -
Chapter 3. Storage and Search
소개 본 글은 데이터 중심 어플리케이션(마틴 클레프만)으로 스터디하며 해당 책의 내용을 요약 정리한 내용입니다. https://github.com/ddia-study/ddia-study GitHub - ddia-study/ddia-study: 데이터 중심 어플리케이션 설계 데이터 중심 어플리케이션 설계. Contribute to ddia-study/ddia-study development by creating an account on GitHub. github.com 서론 데이터베이스가 데이터를 저장하는 방법과 데이터를 요청했을 때 다시 찾을 수 있는 방법에 대해 알아보자. 특정 작업부하(workload) 유형에서 좋은 성능을 내게끔 저장소 엔진을 조정하려면 저장소 엔진이 내부에서 수행되는 작업에 대해 ..
2022.06.10 10:19 -
Chapter 1. Reliability, Scalability, Maintainability
소개 본 글은 데이터 중심 어플리케이션(마틴 클레프만)으로 스터디하며 해당 책의 내용을 요약 정리한 내용입니다. https://github.com/ddia-study/ddia-study GitHub - ddia-study/ddia-study: 데이터 중심 어플리케이션 설계 데이터 중심 어플리케이션 설계. Contribute to ddia-study/ddia-study development by creating an account on GitHub. github.com 서론 computive-intensive
2022.06.10 10:15 -
Cache 파헤치기
What is cache? 캐시는 속도 차이로 인한 퍼포먼스 저해를 막기 위한 것이라고 생각해도 과언이 아니다. 단 한 대의 서버 내부에서도 여러 이유로 캐시를 사용할 수 있으며, 여러 서버 간의 통신에서도 캐시를 사용할 수 있다. 어느 하나가 상대적으로 너무 느리기 때문에 생기는 문제를 계층적 구조를 통해 해결하고자 한 방법이 캐시라고 할 수 있다. “Caching”은 이제 특정 레벨에서 뿐 아니라 OS level, Architecture level, Programming level 등 다양하게 쓰인다. Why we need cache (in OS Level)? 이용 가능한 가장 빠른 메모리의 속도에 근접한 메모리를 제공하는 동시에, 비용이 저렴한 대용량의 메모리를 제공하기 위해서. CPU와 주기억장치..
2022.02.15 15:39 -
@Transactional 파헤치기
아 일단 트랜잭션이 뭔데? 데이터베이스 트랜잭션(Database Transaction)은 데이터베이스 관리 시스템 또는 유사한 시스템에서 상호작용의 단위이다. 여기서 유사한 시스템이란 트랜잭션이 성공과 실패가 분명하고 상호 독립적이며, 일관되고 믿을 수 있는 시스템을 의미한다. - wikipedia DBMS는 각각의 트랜잭션에 대해 ACID를 보장한다. 간단하게 읽어보자. 원자성(Atomicity)은 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장하는 능력이다. 즉, 중간 단계까지 실행되고 실패하는 일이 없도록 하는 것이다 일관성(Consistency)은 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지하는 것을 의미한다. 독립성(Isolation..
2022.02.15 15:20 -
Java 8?
서론 일반적으로 Java로 작업을 하다보면 Java 8과 11을 보통 많이 쓰는 것 같다. 문득, "왜 그렇지?"라는 생각이 들었고 특히 Java 8에서 어떤 변경사항이 있었는지 궁금해졌다. 따라서 알아보기로 결정했다. Java 8? Java 8에서 자바 개발자가 궁금해할만 한 변경 사항은 다음과 같다. Lambda Expression & Method Reference Stream API & Parallel Optional Interface Default Method java.time 패키지 PermGen 제거 장난 아니게 많다. 심지어 다 중요한 변경들이다. 특히 함수형 프로그래밍(FP)와 관련한 이야기들이 많다. 위의 내용에서 한 주제씩만 해도 글 하나가 나올 수 있을 정도라고 할 수 있다. 하나씩 ..
2022.02.15 15:11 -
2021년 회고
서론 먼저 2021년을 돌아보기 전에, 2020년 회고를 다시 여러 번 읽어봤습니다. 읽다보니 2020년보다 2021년에 훨씬 다양한 경험을 하고 더 성장한 것 같아 뿌듯한 마음이 들었습니다. 물론 모든 새해 계획이 그렇듯, 계획되어 있던 부분들과는 다르게 진행된 것들도 있습니다. 2022년을 돌아봤을 때 "2021년보다 나아졌군!"이라고 생각할 수 있도록 2021년 회고를 적어보고자 합니다. 복무 시작 첫 프로젝트부터 지금까지 물론 2020년 12월 말부터 지금 회사에서 산업기능요원으로 복무를 시작하게 되었지만, 본격적인 업무는 올해부터 하게 되었습니다. 처음에는 기존 프로젝트에 참여하여 유지보수하는 작업을 담당하게 되었고 5월에 훈련소를 갔다오고 나서 기존 프로젝트를 새롭게 리팩토링하는 작업을 진행하..
2021.12.30 22:45 -
Jib란? (+ M1 Mac에서 빌드하기 & Kotlin DSL)
서론 M1 Mac에서 Jib를 이용하여 스프링 부트 프로젝트를 빌드하는 것에는 성공했으나, 실행할 때 알 수 없는 이유로 실패했다. (정확하게는 configuration 관련 빈들을 생성할 때 meta-data를 읽지 못해 생기는 이슈인 것으로 파악했다.) (오류명: Unable to read meta-data..) 이 기회에 Jib에 대해서 좀 더 알아보고 정리한 다음, M1 Mac에서 어떻게 하면 Jib 이미지를 정상적으로 빌드할 수 있는지에 대해서 소개하고자 한다. 또한 Kotlin DSL로 작성한 내용도 추가하였다. M1 Mac 관련 이슈만 궁금하신 분들은 Getting Started의 1-1을 보시면 된다. What is Jib? Jib는 Dockerfile을 사용하지 않거나 Docker를 설치..
2021.09.06 12:38 -
팀 내 Contribution Rule 설정을 위한 참고서
서론 본 글은 팀 내 컨트리뷰션 룰 세팅을 위해 필자가 사이드 프로젝트에서 작성했던 글이다. 컨트리뷰션 룰 관련 세팅은 상당히 팀원들과 대화를 많이 해야하는 부분이다. 다른 분들도 본 글을 참고해서 팀원들과 협의한 다음, 함께 룰 세팅하시길 바란다. Branch Rules 기본적으로 Git-flow를 따라가고 있어요. 하지만, 너무 여러 브랜치가 난립하는 걸 막기 위해서 기본적으로 세 종류의 브랜치를 운영하고 있다고 생각하면 좋을 꺼 같아요 main : 이 브랜치는 실제로 서버 Release를 위해 사용되고 있는 브랜치입니다. 실제 배포는 이 브랜치에 MR이 발생하면서 일어나요. develop : 이 브랜치는 서버를 미리 배포해볼 수 있는 브랜치입니다. 실제 배포 전에 이 브랜치에서 확인할 수 있고, 해..
2021.09.04 21:54 -
책 한 권 값에서 세 권 값으로 O'Reilly 책 다 보기(feat. ACM Membership Renewal)
서론 아쉽게도, O'Reilly와 ACM 간 계약이 끝났다. 이제 O'Reilly를 구독하는 방법 밖에 남지 않았다 😢 아시는 분들은 아시겠지만, https://bluayer.com/31 책 한 권 값으로 O'Reilly 책 다 보기(feat. ACM Student Membership) 꼭 읽어주세요! 6월 30일부터 학생 멤버로는 오라일리에 접근하는 것이 어렵다고 합니다. 다른 방법이 있는지 알아봤지만, 찾지 못했습니다. 하지만, 99$로 할 수 있는 Professional Membership으로는 이 bluayer.com 에서 Student Membership을 통해 O'Reilly 책을 다 볼 수 있는 방법을 소개했었다. 하지만 해당 방법이 ACM 멤버십 정책의 변화로 인해 사용할 수 없게 되었고 ..
2021.07.14 10:29 -
[Kubernetes] 5. Service
서론 본 글은 마르코 룩샤의 Kubernetes in Action 책을 기반으로 쓰였으며, 챕터별 내용들을 정리하여 시리즈로 발행 중이다. 따라서 책 내용의 일부가 요약되어 있으며, 필자의 추가적인 해석이 포함되어 있다. 이전 글 https://hack-jam.tistory.com/43 [Kubernetes] 4. LivenessProbe, ReplicationController, ReplicaSet, DaemonSet, Job, CronJob 서론 본 글은 마르코 룩샤의 Kubernetes in Action 책을 기반으로 쓰였으며, 챕터별 내용들을 정리하여 시리즈로 발행 중이다. 따라서 책 내용의 일부가 요약되어 있으며, 필자의 추가적인 해석이 포 bluayer.com 목차 Why we needs Se..
2021.07.05 17:05 -
5분 59초만에 InfluxDB + Grafana를 EC2 Instance 위에서 연동하기
서론 환경설정에 앞서, 본 문서는 Amazon Linux 2 AMI 기반 인스턴스에서 환경설정한 것을 바탕으로 쓰여졌음을 알린다. 또한 InfluxDB는 2.0.7 버전을 바탕으로 쓰여졌음을 밝힌다. 필자는 왜 InfluxDB + Grafana 조합을 선택했는가? 원래 필자가 고려했던 스택은 Prometheus + Grafana 조합이었다. Prometheus의 경우 Metric(지표)을 Polling하는 방식이다. 당연히 서비스가 여러 개로 늘면 Service Discovery가 필요하게 된다. 프로메테우스가 인스턴스들의 고정된 IP를 알고 있거나, 혹은 k8s처럼 프로메테우스에서 SD를 지원해주거나 Service Discovery를 위한 설계가 있지 않다면 사용하기 어렵다는 결론을 내렸다. 따라서, ..
2021.07.01 15:43 -
9분 59초 만에 Github Action + AWS Elastic Beanstalk로 TS 프로젝트 CI/CD 파이프라인 구축하기
서론 AWS는 가끔 버전에 따른 이슈가 발생하기 때문에 참고만 해주세요! 필자는 대부분의 프로젝트에서 Github Action을 CI/CD 툴로 이용하고 있다. 그 이유는 "매우 간편"하게 사용할 수 있기 때문이다. 물론 다른 서비스(Travis CI 등등)도 사용할 수 있겠지만, 해당 파이프라인이 실패할 경우 바로 GIthub에서 확인할 수 있다는 점이 상당히 간편하다고 생각했다. (물론 메일도 온다) 또한 배포 후 관리를 위한 툴로는 AWS Elastic Beanstalk를 적극 활용하고 있다. AWS Elastic Beanstalk의 장점은 다음과 같다. 완전 관리형이기 때문에 초반 세팅만 잘 해준다면 어지간해서 손을 댈 부분이 없다. 진짜 자동으로 뚝딱 환경을 만들어준다. 그렇기 때문에 사람이 직..
2021.06.30 23:26 -
InfluxDB & Grafana 연결 문제 해결 (Bad Gateway, Bad Request, Error reading InfluxDB)
서론 필자는 사내에서 InfluxDB로 시계열 데이터를 수집하고, Grafana로 해당 대쉬보드를 만드는 업무를 맡게 되었다. 그 과정에서 자연스럽게 InfluxDB와 Grafana를 연결하는 태스크가 있었는데, 해당 업무를 진행하던 중 겪었던 어이없던 이슈를 소개하고자 한다. 빠른 체크리스트 독자 여러분을 위해 빠른 체크리스트를 작성해봤다. 시간이 없으신 분들은 이것부터 빠르게 훑어보자. (InfluxDB에 설정을 하지 않았다면) URL의 포트가 8086인가? (InfluxDB에 설정을 하지 않았다면) URL의 prefix가 http인가? (InfluxDB 버전이 1.x가 아니라면) Query Language로 Flux를 설정했는가? InfluxDB Details에 Organization과 Token ..
2021.06.24 16:17 -
주니어 백엔드 개발자를 위한 추천 도서 목록
서론 개인적으로 책을 읽는 건 좋은 습관이지만, 정리하지 않고 책을 읽는 습관은 나쁜 습관이라고 생각한다. 필자 본인은 책을 읽을 때 2번, 3번씩 읽고 나서 정리하려고 노력한다. 이 목록에 있는 책들은 1번 읽기가 어려울 정도로 어렵다. 그렇지만, 읽을 때는 잘 와닿지 않지만 코드를 작성하면서, 인프라를 구축해보면서 "이게 최선인가?"라고 생각할 때 부족한 지식들을 채워줄 수 있는 책들이다. 모르기 때문에 더 좋은 선택지를 잃는 것은 너무 억울하지 않은가? 어쩌면 30일 있다 대대적으로 개선해야 할 서버를 0.5년, 1년, 3년, 5년 넘게까지 쓸 수 있게 만들 수 있는 개발자가 되고 싶다면 아래의 책들을 추천한다. (나름 필자가 읽어본 후기를 적어놨다. 도움이 되길 기원한다.) 추천 도서 목록 오브젝..
2021.06.08 13:26 -
[Kubernetes] 4. LivenessProbe, ReplicationController, ReplicaSet, DaemonSet, Job, CronJob
서론 본 글은 마르코 룩샤의 Kubernetes in Action 책을 기반으로 쓰였으며, 챕터별 내용들을 정리하여 시리즈로 발행 중이다. 따라서 책 내용의 일부가 요약되어 있으며, 필자의 추가적인 해석이 포함되어 있다. 이전 글 2021.03.24 - [Log.Develop/DevOps] - [Kubernetes] 2. Pod(파드) [Kubernetes] 2. Pod(파드) 서론 본 글은 마르코 룩샤의 `Kubernetes in Action` 책을 기반으로 쓰였으며, 챕터별 내용들을 정리하여 시리즈로 발행 중이다. 따라서 책 내용의 일부가 요약되어 있으며, 필자의 추가적인 해석이 bluayer.com 목차 Pod를 안정적으로 유지하기 Liveness Probe? Make and Run Liveness..
2021.03.29 10:32 -
[Object] Chapter 02 ~ 05 정리
서론 본 글은 필자가 오브젝트(조영호, 위키북스, 2019.06)라는 책을 읽으며 인상 깊었던 글귀들을 정리해 놓은 글이다. 필자는 대학교에서 OOP(Object Oritented Programming) 수업을 수강했었음에도, 해당 책에 있는 내용들이 매우 값지게 느껴졌다. '단순히 OOP가 무엇인가?'의 관점을 넘어 OOP를 실천하고자 하는 프로그래머들에게 하나의 지침서가 될 수 있는 내용이라고 생각한다. 본 글은 시리즈로 발행될 예정이며, 추후에 정리하는대로 후속편이 업로드 될 예정이다. Chapter 02 객체는 상태(state)와 행동(behavior)를 함께 가지는 복합적인 존재이다. 객체는 스스로 판단하고 행동하는 자율적인 존재다. 설계가 필요한 이유는 변경을 관리하기 위해서라는 것을 기억하라..
2021.03.25 09:39 -
[Kubernetes] 3. Pod(파드)
서론 본 글은 마르코 룩샤의 `Kubernetes in Action` 책을 기반으로 쓰였으며, 챕터별 내용들을 정리하여 시리즈로 발행 중이다. 따라서 책 내용의 일부가 요약되어 있으며, 필자의 추가적인 해석이 포함되어 있다. 이전 글 2021.03.24 - [Log.Develop/DevOps] - [Kubernetes] Chapter 1 ~ 2. Docker & K8S [Kubernetes] Chapter 1 ~ 2. Docker & K8S 서론 본 글은 마르코 룩샤의 Kubernetes in Action 책을 기반으로 쓰였으며, 앞으로 챕터별 내용들을 묶어 시리즈로 발행할 예정이다. 또한 책 내용의 일부가 요약되어 있으며, 필자의 추가적인 해석 hack-jam.tistory.com 다음 글 2021.0..
2021.03.24 14:19 -
[Kubernetes] 1&2. Basic of Docker & K8S
서론 본 글은 마르코 룩샤의 Kubernetes in Action 책을 기반으로 쓰였으며, 챕터별 내용들을 정리하여 시리즈로 발행 중이다. 따라서 책 내용의 일부가 요약되어 있으며, 필자의 추가적인 해석이 포함되어 있다. 다음 글 2021.03.24 - [Log.Develop/DevOps] - [Kubernetes] Chapter 3. Pod(파드) [Kubernetes] Chapter 3. Pod(파드) 서론 본 글은 마르코 룩샤의 `Kubernetes in Action` 책을 기반으로 쓰였으며, 앞으로 챕터별 내용들을 묶어 시리즈로 발행할 예정이다. 또한 책 내용의 일부가 요약되어 있으며, 필자의 추가적인 해 hack-jam.tistory.com MSA와 K8S 참고로 k8s는 Kubernetes를 ..
2021.03.24 14:08 -
AWS SAA-02 자격증 취득 후기
서론 먼저 자격증 취득 후기에 대해서 말하기에 앞서, AWS에 자격증이 있어?! 하고 궁금하실 분들을 위해 조금 설명하고자 한다. AWS는 공인 자격증을 여러 종류를 발급하고 있다. 사실 기초는 상당히 쉬운 수준에 불과하고, 보통은 어소시에이트부터 도전하시는 분들이 많다. 또한 주기적으로 시험의 내용이 조금씩 추가되거나 바뀌고 있는 상황이며, 내가 시험을 본 Solutions Architect 부분에서는 00, 01을 거쳐 현재는 02 version으로 시험을 보게 되어있다. 분야 자체도 상당히 다양한 편인데 분야에 따라서 나오는 내용이 좀 다른 편이다. 이 자격증이 의미가 있어? 그렇다. 의미가 있다. 아래의 링크를 참조해보면 (물론 과장이 있겠지만) 실제 연봉에도 영향을 끼치는 것 같다. www.bu..
2021.02.22 11:51 -
Amplify로 React 프로젝트 쉽고 빠르게 배포하기
서론 평화롭게 사이드 프로젝트를 진행하고 있던 어느 날... 우리 팀이 사놓은 도메인에 API 서버는 연결되어 있었으나, React로 만든 프론트엔드가 연결이 되어 있지 않았음을 문득 깨달았다. '아 이걸 어떻게 하지?'라는 고민을 하다가 일단 임시방편으로 맨 처음에는 단순하게 webpack dev server로 API 서버 안에 함께 띄워서 nginx를 통해 라우팅을 다르게 주었다. 그러나 곧 이 방법의 문제점이 나타나게 되는데... 한 EC2에 API 서버와 React를 함께 띄웠을 때의 문제점 이 방법의 문제점은 여러가지가 있었다. nginx를 사용해서 들어오는 URL path에 따라 구분을 하기 위해서 서버 API 경로에 /api라는 경로가 붙었다. 물론 취향의 차이겠지만, 개인적으로는 프론트엔드..
2021.02.16 12:26 -
CQRS 패턴, 코드에 순식간에 적용해보기
서론 평화롭게 프로젝트를 개발하고 있던 어느 날, 우연한 기회로 CQRS 패턴에 대해 이야기를 들을 일이 생겼다. 기존 구조는 R.C.Martin의 Clean Architecture를 따라서 작업을 해둔 상태였는데, 어떤 프로그래머 분이 우리 구조에 대해서 들으시더니 오, 그 구조면 CQRS도 고려해보는 건 어때요? 라는 말을 해주셨다. 그리고 나는 CQRS를 진행하던 사이드 프로젝트에 적용하기 위해 알아보는 여정을 가졌다. (그리고 이 사이드 프로젝트는 곧 출시될 예정이다! https://www.official.cookieparking.com에서 메일을 받아보실 수 있습니다) 그래서 우리 API 서버의 이전 구조는... 이전 구조는 클린 아키텍쳐를 '나름' 꼼꼼하게 따르려고 노력했었다. 그러니깐 정확하..
2021.02.14 17:55 -
개발 및 비개발직군을 위한 Refactoring 이야기
서론 필자는 개발자이다. 이 글을 써야겠다고 마음 먹은 계기는 정말 간단했다. 아, 우리 팀의 비개발직군들은 나 혹은 다른 개발자들이 리팩터링, 리팩터링 얘기를 할 때, '중요하다고 생각한 그거 때문에 기능 개발이 밀린다'고 생각하면 어떡하지? '그게 도대체 뭐길래, 우리의 중요한 일정까지 미뤄야 하는거야!'라고 생각하면 어떡하지? '개발자들.. 티도 안 나는 작업을 도대체 왜 하는거야!!'라고 생각한다면? 정말로 생각만 해도 끔찍했다. 물론 이런 문제를 해결하는 가장 정확한 방법은 커뮤니케이션에 더 많은 리소스를 쏟는 것이다. 더 많이 이야기하고, 더 많이 공감해야 한다. 그렇지만 우리는 사람이기 때문에 리팩토링을 해야 하는 이유를 매번 명확하게 설명하기 힘들 수 있다. (까 먹기도 할 꺼고.. 말하다..
2021.01.30 16:19 -
[Node.js] HTTP 요청 관련 라이브러리들(request vs axios vs superagent)
서론 우연히 쓸 일이 생겨서, HTTP Request 라이브러리들을 정리해보았다. 개인적으로는 가벼움 때문에 superagent를 사용하였으며, 사실상 request와 거의 똑같이 쓸 수 있는 구조로 되어 있어 편리하게 사용하였다. 1. request 공식 문서 : https://github.com/request/request request/request 🏊🏾 Simplified HTTP request client. Contribute to request/request development by creating an account on GitHub. github.com 상당히 다양한 HTTP request 형식을 지원하고 있고, npm 초창기부터 있던 모듈이다. 2020년 2월 11일 이후로 deprec..
2021.01.19 15:28 -
2020년 회고
서론 저는 회고를 두려워하는 편입니다. 매 선택을 되돌아보면 항상 후회되는 일들이 너무 많았기 때문에, 보통은 되돌아보기에 그치지 않고 자책까지 도달해서 스스로를 옥죄는 성향이기 때문입니다. 크게 후회한 경험이 많아서 알게 모르게 회고를 두려워했던 거 같습니다. 그런데 올해부터 회고를 쓰기로 마음을 먹었습니다. 2020년이 행복한 시기였고, 크게 후회한 경험이 오히려 좋은 경험으로 바뀌기도 했습니다. 결정적으로는 '2021년은 원하는 것들이 다 이뤄지기를 바란다'는 상투적인 메시지가 왠지 와 닿았던 거 같습니다. 2020년에는 제가 원했던 것들이 다 이뤄졌거든요! :) 덕분에 한 번 올해를 SSG 돌아보게 되었습니다. 1월 그리고 3월까지 친한 친구를 만나서 '밥이나 먹자~' 이랬는데 눈 떠보니 함께 개..
2021.01.01 17:11 -
[TS] TypeScript에서 Singleton 패턴 적용하기
서론 최근 코드 상의 여러 문제를 해결하기 위해서 적극적으로 디자인 패턴을 적용하기 시작했다. 작년만 해도 무분별하게 디자인 패턴을 사용해 왔었는데, 지금은 코드를 작성하고 나서 더 좋은 방법이 없었나 고민하는 하는 과정(보통 리팩토링 과정이긴 하다)에서 코드로 인해 발생할 수 있는 문제에 대해 생각한 다음 좋은 방법으로 알고 있는 디자인 패턴을 조금씩 적용해 나아가고 있다. 아무쪼록 최근에 코드를 작성하던 도중 특정 클래스를 살피다, 시스템 전체에서 해당 클래스를 통해 단 하나의 객체 인스턴스 만을 생성하는 것을 강제해야 함을 꺠달았고, 여러 Class에 공통적으로 적용해야 한다는 점을 깨닫게 되었다. 좋은 방법으로 싱글톤 패턴을 떠올리게 되었고, 적용하였다. 싱글톤 패턴이란 무엇인가? 싱글톤 패턴은 ..
2020.10.06 17:36 -
책 한 권 값으로 O'Reilly 책 다 보기(feat. ACM Student Membership)
꼭 읽어주세요! 아쉽게도, O'Reilly와 ACM 간 계약이 끝났다. 이제 O'Reilly를 구독하는 방법 밖에 남지 않았다 😢 6월 30일부터 학생 멤버로는 오라일리에 접근하는 것이 어렵다고 합니다. 다른 방법이 있는지 알아봤지만, 찾지 못했습니다. 하지만, 99$로 할 수 있는 Professional Membership으로는 이용할 수 있다고 합니다. 안타깝게도 조금 더 비싼 가격에 제공되는 Professional Membership을 사용하는 걸로.. 추가적으로 본 글을 읽고 Student Membership을 사용하시던 분들은 49$에 이용할 수 있는 방법이 있으니 참고하시면 좋을 것 같습니다. https://hack-jam.tistory.com/49 책 한 권 값에서 세 권 값으로 O'Reil..
2020.09.24 12:33 -
2분 59초 안에 좋은 PR 작성하기
서론 전 여담 아, 안타깝게도 필자의 능력 부족으로 인해 글을 3분 만에 읽을 수는 없다... 다만, 결과적으로, 3분 카레보다 빠르게 좋은 PR을 작성할 수 있도록 글을 쓰고자 노력했다!! 서론 Git을 여러 사람과 사용하게 된다면, Remote Repo로 Github을 쓸 일이 정말 많다. 특히 회사에서 Github을 쓰게 된다면, Pull Request(이하 PR)을 날릴 일이 엄청 많다. 기능 하나에 PR 한 번이라고 해도 무방하고, 기능을 쪼개서 개발하고 있다면 더 잦은 PR을 날릴 것이다. PR이 왜 중요해? 개인적으로 생각하는 PR이 중요한 이유는 다음과 같다. 기능을 합치는 단위이다. 다른 사람들이 내가 작성한 코드의 완성본을 볼 수 있다. 좋은 리뷰를 받을 수 있는 절호의 기회다. 특히 ..
2020.09.22 20:15 -
[MySQL] How to swap PK?
서론 가끔 실제 환경에서 Database가 다운되거나 혹은 서버가 다운되거나 등의 이유로 DB의 무결성이 깨지게 되는 케이스가 존재한다. 임시방편적으로 무결성이 깨진 부분을 복구하는 건 서버 개발자 혹은 DBA의 몫인데, 그 과정에서 Record를 삽입하게 되고, 삽입한 레코드의 순서가 맞지 않는 상황이 발생하게 된다. 이런 상황을 맞닥뜨렸을 때 어떻게 대응할 것인가? 나는 처음 생각한 방법으로, PK를 swap하는 방법을 생각했다. 참고로 필자는 MySQL 5+, 엔진으로는 InnoDB를 사용했다. 미리 보는 결론 더보기 그리고 이 방법은 아주 처참하게 실패했다. 적어도 MySQL에서는. 간단히 말하자면, swap을 PK할 수는 없다. 그렇기 때문에 PK를 제외한 다른 컬럼들의 값을 swap해주면 PK..
2020.09.16 19:37 -
[TS / Node] TS + Node.js + Express + Babel(option) + eslint로 개발환경 세팅하기
서론 이 포스트를 쓰게 된 계기는, 내가 원하는 저 조합(TS + Node.js + Express + Babel + eslint)으로 개발환경을 세팅했으며 이에 대해 잘 정리된 글을 생각보다 찾기 힘들어서다. 위의 조합으로 개발환경을 세팅하는 가장 강력한 이유는 TS(TypeScript)를 사용하고 싶기 때문이라고 생각한다. '정적 타입이 주는 안정감'이란 단어는 얼마나 HIP한 단어인가!! (안타깝게도 JS 개발자들에겐 HIP하게 느껴진다ㅠㅠ) 아무쪼록 저렇게 세팅을 해보도록 하자. (다만, 이 글은 Node.js + Express 세팅에 이미 익숙한 사람을 전제로 쓰여진 글이다.) 미리 보는 결론 결론은 매우매우 간단하다는 것이다. 1) tsconfig 생성 및 수정 2) eslint 설정 3) ba..
2020.07.23 13:08 -
[Markdown] 웹 개발자를 위한 README.md 작성법
서론 Markdown은 문서를 작성하는 방법 중 특히 개발자들에게 상당히 보편적인 방법이라고 할 수 있다. '.md' 확장자로 작성되는 문서들이 바로 마크다운으로 작성된 문서라고 할 수 있는데, 이런 마크다운이 편리한 이유는 텍스트를 쉽게 편집할 수 있을 뿐 아니라, (개인적으로는 마우스를 쓰지 않아도 글씨 크기 조정, 양식화 등 다양한 일을 할 수 있어서 좋아한다 :) HTML 등 다양한 형식으로 변경할 수 있기 때문이다. 아무쪼록 내가 이번 포스트를 쓰게 된 이유는, 내가 작성했던 Repository들의 README.md를 보며 개인적으로 마크다운에 대해서 잘 알고 있었다고 생각하지만 막상 내 프로젝트의 README.md가 적절한 설명을 가지고 있는지에 대한 고민을 하게 되었기 때문이다. 보통 프로젝..
2020.06.16 12:53 -
[JavaScript] Arrow function과 this 키워드
서론 ES6에는 다양한 내용들이 새로 포함되었고, 유용한 것들이 많다. 그렇지만 사용 빈도로 순위를 매긴다면, 필자는 오늘 다룰 Arrow function이 다섯 손가락 안에 꼽힐 것이라고 확신한다. 또한, Arrow function을 그냥 단순하게 축약 문법이라고 생각하고 쓰기엔 생각보다 신경 써서 알아 둬야 할 부분들이 있다. (이 내용이 바로 this와 관련된 부분이다.) 아무쪼록, Arrow function에 대해 간단히 알아보자. 또한 this 키워드에 대해서도 간략히 알아볼 것이다. (솔직히 MDN 문서에 아주 잘 설명되어 있지만, 간단한 정리는 언제나 좋다.) ** 참고로 대부분 코드의 실행 결과를 접은 글로 첨부하였다. ** 실행 결과가 궁금한 분들은 참고하시길 바란다. Arrow func..
2020.04.28 14:38 -
[H2] Database (디렉토리 경로) not found, either pre-create it or allow remote database creation
서론 H2 DB를 처음 사용할 때 맞이할 수 있는 문제다. 필자는 개인적으로 Spring boot를 사용할 때 테스트 용 디비로 H2를 사용하고 있었는데, 최근에 컴퓨터에서 직접 DB 조작할 일이 생겨 깔아서 사용하던 중 맞이한 문제다. 개발 환경 필자의 개발 환경은 다음과 같다. OS : macOS Catalina Device : Macbook pro early 2015 H2 version : 1.4.200 문제가 무엇인가? Database (디렉토리 경로) not found, either pre-create it or allow remote database creation(not recommended in secure environments) 맞이한 문제가 위와 같다면, 본 포스트를 읽는 것이 도움이..
2020.04.23 15:57 -
[JavaScript] Closure와 IIFE
서론 개인적으로 JavaScript(이하 JS)를 공부할 때 이해하기 어려웠던 내용을 뽑자면, 단연 이 글의 주제인 Closure와 IIFE라고 할 수 있다. 심지어 Closure와 IIFE, 이 두 가지 개념은 면접 단골 질문이라고 할 수 있다. (js 개발자 혹은 FE(Front-end) 개발자 면접에서 자주 나온다고 한다.) 위의 사진은 하단 참고 자료 3번에 있는 인터뷰 질문 정리 깃헙이다. (정말 좋다!!) (https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/JavaScript) 이 인터뷰 질문 정리 내용에도 이미 있는 내용이지만, 필자 본인이 Closure와 IIFE를 좀 더 이해해 보자는 마음으로 이 글을 쓰게..
2020.04.20 23:08 -
[MySQL][JDBC] SQLException : server time zone value 'KST' is unrecognized
서론 내가 사용하고 있는 환경은 다음과 같다. OS : macOS Catalina MySQL : 8.0.19(brew로 설치함) JDBC : 글 작성일 기준 latest 버전 이 문제를 발견하게 된 상황은 MySQL과 JDBC를 함께 사용하고 있는 상황이었다. 하지만 찾아보니 MariaDB에서도 일어나는 에러인 것으로 보였다. 아무쪼록, 필자는 MySQL을 사용하다 발견한 에러임을 먼저 밝힌다. 정확한 에러 메시지의 내용은 다음과 같다. java.sql.SQLException: The server time zone value 'KST' is unrecognized or represents more than one time zone. You must configure either the server or ..
2020.04.15 22:07 -
Samsung Bixby Crew(삼성 빅스비 크루) 2기 활동 회고
서론 2019-2학기부터 올해 2월쯤까지 삼성 빅스비 크루 2기로 활동했습니다. 사실 이런 활동이 존재하고 있는지도 몰랐는데, 같은 동아리에서 활동하시던 분이 삼성과 빅스비에 관심이 많으셔서 운 좋게 기회를 얻게 되었습니다. 빅스비 크루란? 빅스비 크루란, 삼성에서 대학생을 대상으로 진행하는 활동으로 빅스비에 관심이 많으며 이에 대해 개발적으로도 잘 알고 있어 여러 행사를 주최할 수 있는 크루를 의미합니다. 실제로 세미나, 해커톤과 같은 행사를 주최하기도 하며 빅스비 디벨로퍼에 초청받기도 했습니다. 행사를 진행할 때에는 보통 삼성 프로님들의 서포트를 받아 진행되며 간식, 진행 장소 대여 등 다양한 방면으로 도움을 주셨습니다. 또한 슬랙과 메일을 통해서 활발하게 연락을 주고 받으며 원활한 행사 기획 및 진..
2020.04.15 01:28 -
Google Code Jam Qualification Round(QR) 참가 후기
Google Code Jam이란? Google Code Jam은 매년 열리는 구글에서 주최하는 알고리즘 대회이다. 참가 후기를 보면 단순히 대학생들 뿐 아니라, 실제 현업에서 일하는 직장인들도 많이 참여한다. 단순히 한 번의 대회로 결정되는 대회는 아니고 상당히 많은 과정을 거쳐야 한다. 구조는 다음과 같은데, 1. Qualification Round 2. 1라운드 3. 2라운드 4. 3라운드 5. World Final(최종 결선) 이렇게 총 5단계로 이루어져 있다고 생각하면 된다. 또한 '아니, 매 라운드마다 날짜가 있을텐데 그날 일정이 있으면 어떻게 하지?'라는 걱정을 할 수 있는데 보통 많은 사람들이 떨어지는 1라운드의 경우 꽤 여러 번 round가 개최된다. (1A, 1B... 이런식이다) 물론 ..
2020.04.07 16:27 -
[백준][알고리즘][C++] 16165 걸그룹 마스터 준석이
문제의 난이도 문제의 난이도 : Silver 2 문제 분석 이 문제는 필자가 출제 했던 문제다. 문제를 낼 당시에는 학부 2학년이었기 때문에 알고리즘에 대해서도 잘 몰랐고, 문제를 많이 풀어 보지 못 해서 여러모로 잘 냈다고 할 수 없는 문제라고 할 수 있다.. 아무튼, 결론적으로 이 문제의 핵심은 다음과 같다. 주어진 그룹과 멤버를 어떤 형식으로 저장할 것인가? 출력을 위해서 어떤 형식이 좋은 저장 방식 일까? 즉, 두 질문 모두 어떤 자료 구조를 선택할 지가 초점이라고 할 수 있다. 문제 해결 Map을 쓰자! 원래 문제를 낸 의도는 이진 탐색 트리를 이용하는 방향이었다. 그러나, 시간이 지나고 나서 문제를 풀어 보니 이진 탐색 트리를 구현하기 보다 map을 써서 푸는 것이 더 편리하다는 것을 깨달았다..
2020.03.18 11:39 -
개(발 어)린이를 위한 개발 안내서(ver. 2020)
P.S. 글을 쓰면서 많은 정보를 담으려다 보니, Compact 한 글이 아니게 되었다... 최대한 노력해 봤지만 그래도 잘 안 읽힌다면 필자의 필력 부족이니 이해해 주시길.. 또한 개인적인 관점이 많이 담겨있는 글이라 불편하실 수 있다는 점을 미리 밝히고자 한다. 서론 먼저, 본인은 대학교 4학년에 스트레이트로 재학 중이며 대학에 와서 코딩을 처음 접한 사람이었다. 개인적으로 스스로의 장점 중에 하나가 '아무나 붙잡고 모르는 거 물어보기'라고 생각하는데, 따라서 주변 사람들의 도움을 많이 받아 우여곡절 끝에 운 좋게 휴학 없이 4학년까지 오게 되었다고 생각한다. 물론 아직 0년차, 심지어 주니어 개발자도 아니지만 '개발에 대한 정보를 어떻게 얻고, 어떻게 공부해야 하는가?'라는 관점에서 이 글을 쓰게 ..
2020.03.01 13:16 -
개(발 어)린이, 실력 증진을 위해 읽을 거리를 찾아봅시다!
서론 개발을 가는 중간중간, 정보를 찾는 것은 생각보다 귀찮은 일이다. 특히 아예 모르는 분야를 공부하기 시작할 때 정보를 얻기란 하늘의 별 따기가 아닐 수 없다. 그래서 개발자들은 흥미로운 읽을거리들을 항상 쥐고 있는 거 같다. (물론 나처럼 약간의 활자 중독이 있는 사람도 있다) 아무쪼록, 개인적으로 알고 있는 읽을 거리들을 소개하고자 한다. 설명을 하기 전에, 필자 본인은 웹 개발자이다. 프론트도 약간은 하지만 보통 서버 쪽에 치중되어 있다. 따라서 웹 관련 정보 얻기 위주로 이 글이 작성되었음을 감안해주시길 바란다. 페이스북 그룹, 페이지를 활용하자. 페이스북을 안 쓰는 사람한테는 해당하지 않지만 평소 페이스북 그룹이나 페이지에서 정보를 많이 얻는 편이다. 가끔 좋은 글 들이나 질문도 많이 올라오..
2020.03.01 13:04