kciter.sodevlog
Nov 10, 2024
44 minute read
Nov 10, 2024
article
software-engineering

개발자의 추상적, 구조적 사고

컴퓨터 과학의 모든 문제는 다른 수준의 간접 계층으로 해결할 수 있다 - David J. Wheeler ... 그러나 그러면 또 다른 문제가 생기는 것이 일반적이다. - Butler W. Lampson 개발자는 추상과 구조에 대한 이야기를 많이…

Oct 27, 2024
30 minute read
Oct 27, 2024
article
music-recognition
audio-fingerprint
signal-processing
algorithm

음악 검색 시스템 만들기

미래 학자이자 SF 소설의 거장 아서 C. 클라크는 라는 유명한 말을 남겼다. 이 말이 사실임을 증명하듯 현대 사회의 기술은 다양한 놀라움을 선사한다. 그 중에서도 Shazam이나 Soundhound와 같은 음악 검색 앱을 사용할 때 필자는 항상…

Oct 12, 2024
45 minute read
Oct 12, 2024
article
software-engineering

소프트웨어 파괴의 미학

새는 알에서 나오기 위해 투쟁한다. 알은 세계이다. 태어나려고 하는 자는 누구든 하나의 세계를 파괴하지 않으면 안된다. - 헤르만 헤세, 데미안 소프트웨어 개발은 많은 부분이 애매모호하다라는 생각을 해본적이 있는가? 무엇을 만들어야 하는지, 어떤…

Jul 29, 2024
7 minute read
Jul 29, 2024
book-report

카피책을 카피하다

글 잘 쓰고 싶은 사람이라면 무조건 읽어 봤다는 바로 그 책. 최근 들어 많은 글을 쓰고 있습니다. 글 쓰는 것이 재밌기도 하고 어느 정도 익숙해지니 쓰는 속도도 빨라졌습니다. 그러다 보니 잘 쓰고 싶다는 욕심이 생기기 시작합니다. 그래서 이번…

Jul 27, 2024
5 minute read
Jul 27, 2024
book-report

정리부터 먼저 하라구요?

이 책은... 매우 얇다. 그것이 장점이자 단점이다. 장점은 빠르게 읽을 수 있다는 것이고, 단점은 내용이 얕다는 것이다. 이 책을 집필한 켄트 백은 의심할 여지 없이 소프트웨어 업계에선 유명한 인물이다. 그의 저서인 익스트림 프로그래밍과 테스트 주도…

Jul 9, 2024
7 minute read
Jul 9, 2024
book-report

프롬프트 엔지니어링을 시작한다면

프롬프트 엔지니어링은 더 많은 사람이 프로그래머가 될 수 있는 세상이 온 것을 의미합니다. "이제는 AI가 가치있다는 것을 인정하지 않을 수 없다. 실제로 ChatGPT와 Copilot을 사용하면서 AI가 얼마나 빠르게 발전하고 있는지를 느낄 수…

May 17, 2024
5 minute read
May 17, 2024
book-report

씨줄과 날줄

아무것도 몰라도 타입 검사를 그냥 '사용'할 수는 있다. 하지만 타입 검사를 제대로 '활용'하는 것은 전혀 다른 문제다. 아무래도 타입은 프로그래밍을 할 때 가장 많이 고려하는 요소라고 할 수 있다. 우리는 프로그래밍 언어가 제공하는 문법을…

May 10, 2024
10 minute read
May 10, 2024
book-report

기계의 반칙

정교하게 구성된 생명체도 기계가 될 수 있고, 체계적으로 작동하는 소프트웨어도 기계가 될 수 있으며, 이 책에서도 언급하듯이 인간으로 구성된 소셜 플랫폼조차 기계가 될 수 있다. 지능이란 무엇인가? 인간을 제외한 동물은 지능이 있는가? 식물은?…

Apr 26, 2024
9 minute read
Apr 26, 2024
article
ai
llm
productivity

AI와 더불어 살아가기

이제 인정할 수 밖에 없다. AI 없는 개발로 돌아갈 수 없다는 것을… 확실하게 역체감을 느끼게 해주는 제품은 성공할 수 밖에 없다. 이제 필자를 비롯한 대다수의 개발자에게 AI 서비스는 사용하지 않던 시절로 돌아가기 힘든 제품이 되었다…

Apr 14, 2024
46 minute read
Apr 14, 2024
article
vault
cipher
security
password

비밀 관리를 위한 금고 시스템 만들기

최근 몇 년 사이에 브라우저 혹은 OS에서 제공하는 비밀 관리 시스템을 이용하는 사람이 많아졌다. 혹은 1Password 같은 애플리케이션을 이용하는 사람도 적지 않다. 이런 제품을 사용한다면 한 번쯤 라는 의심을 해본 적이 있을 것이다. 이번…

Mar 16, 2024
33 minute read
Mar 16, 2024
article
debugging
principle

디버깅 원칙

디버깅, 개발자라면 누구라도 한 번쯤 겪었고 앞으로도 꾸준히 겪어야 할 피할 수 없는 숙명이다. 우리는 간단한 논리적 실수부터, 도저히 원인을 알 수 없어 며칠 동안 머리를 싸매는 버그를 해결해왔다. 도대체 우리는 왜 계속해서 디버깅을 해야 하는…

Mar 3, 2024
51 minute read
Mar 3, 2024
article
crafting
renderer
3d
ascii

ASCII 3D 렌더러 만들기

필자는 쓸데없지만 재밌는 프로그램을 만들면서 공부하는 것을 좋아한다. 최근에 정신적으로 에너지가 바닥나고 있다는 것을 느껴 작년에 재미로 만들었던 Jazzlang과 같이 정신적 에너지를 채워줄만한 재미를 느끼고 싶었다. 그래서 무언가 할만한 것을…

Feb 18, 2024
29 minute read
Feb 18, 2024
article
react
ui
component
frontend

Render Delegation하는 React 컴포넌트 만들기

이전에 Polymorphic한 React 컴포넌트 만들기라는 글을 통해 컴포넌트에 다형성을 적용하는 방법을 소개했었다. 해당 글에서는 속성을 이용하여 컴포넌트를 변형시키는 것을 소개하는 데 이를 이용하면 하나의 컴포넌트로 여러 요소(Element…

Jan 21, 2024
46 minute read
Jan 21, 2024
article
type-system
functional
type-driven-development
methodology

Type-Driven Development

타입은 개발자에게 친숙하면서도 어색할 수 있는 개념이다. 특히 정적 타입 언어를 사용한다면 타입은 땔래야 땔 수 없는 존재다. 타입은 가끔씩 귀찮게 굴 때도 있지만 개발자에게 막강한 무기가 될 수 있다. 타입은 함수와 데이터가 준수해야 하는 엄격한…

Dec 24, 2023
43 minute read
Dec 24, 2023
article
growth
learning

개발자의 학습과 성장

🚨 이 자료는 개발자의 소프트 스킬이 아닌 하드 스킬을 이야기합니다. 또한, 성장을 강요하는 자료도 아닙니다. 이 자료는 개발자가 성장하기 위한 방법론을 이야기합니다. 기술을 다루는 다른 직업과 마찬가지로 개발자 또한 끊임없는 학습을 해야 한다…

Dec 5, 2023
56 minute read
Dec 5, 2023
article
code
clean-code
beautiful-code
refactoring

아름다운 코드에 대하여

Beauty is mute deception. - Theophrastos 기원전, 테오프라스토스라는 사람은 라는 말을 했다. 언뜻보면 아름다움이란 사람들마다 비슷하게 생각하는 것 같으면서도 각자 생각하는 기준이 다르다…

Jul 24, 2023
28 minute read
Jul 24, 2023
article
functional
datastructure

함수형 자료구조

자료구조란 전기 신호의 나열로 이루어진 컴퓨터 세계의 데이터를 다차원으로 표현하는 것이라 볼 수 있다. 우리는 보통 전산화를 할 때 현상을 표현하기 위한 데이터 구조를 정의하고 이를 이용해 알고리즘을 구현한다. 그렇지만 우리가 일반적으로 학생 때…

Jul 17, 2023
42 minute read
Jul 17, 2023
article
functional
error-handling
railway-oriented-programming

Railway-Oriented Programming

프로그램을 개발함에 있어 에러와 사이드 이펙트(부수 효과)를 처리하는 것은 필연적이다. 아무리 꼼꼼하게 코드를 작성해도 생각하지 못한 문제는 존재하며 특히나 지속해서 발전하는 프로그램은 기술 부채와 함께 끊임없이 새로운 문제가 발생한다. 문제가…

Jul 10, 2023
26 minute read
Jul 10, 2023
article
work
productivity

갓생사는 방법론

현대인의 삶은 너무나도 힘들다. 알아야할 정보는 너무나도 많고 항상 새로운 도전을 요구받는다. 그렇게 끝이 보이지 않는 일과 막막한 미래를 보면 쉽게 무력감에 휩싸인다. 필자도 마찬가지다. 미래에 대한 불확실성과 언제까지 노력을 해야할까를 생각하면…

May 3, 2023
35 minute read
May 3, 2023
article
spring
architecture
module
ioc
di

IoC와 DI를 이용한 Spring 멀티 모듈 아키텍처

흔히 훌륭한 아키텍처는 개발자와 소프트웨어 품질에 많은 도움을 준다고 한다. 대체 아키텍처란 뭘까? 많은 개발자가 아키텍처란 그저 이라고 말하고 필자 또한 이 말에 동의한다. 다시 한 번 일을 하는 방법이란 말에 대해 생각해보자. 일은 그냥 하면…

Sep 18, 2022
38 minute read
Sep 18, 2022
article
crafting
language
esolang

난해한 프로그래밍 언어 만들어보기

잉여 코딩이라는 말을 들어본 적 있는가? 잉여 코딩은 돈 버는데엔 쓸모없지만 취미로 즐겁게 코딩하는 것을 의미한다. 최근 몇 년 사이엔 대부분 업무와 직간접적으로 연관이 있는 코딩만 했는데 마침 사내 지식 공유의 날을 기회로 정말 오랜만에 업무와…

Sep 8, 2022
12 minute read
Sep 8, 2022
book-report

나는 프로답게 일했는가?

소프트웨어 장인 정신은 소프트웨어 개발의 프로페셔널리즘에 대한 것이다. 굉장한 책이다. 내가 처음 일을 시작할 때 듣고싶었던 말, 일을 시작하는 누군가에게 해주고 싶은 말, 내가 겪었던 일, 지금 겪고있는 일 모든 것이 이 책에 담겨있다. 아마도…

Aug 31, 2022
12 minute read
Aug 31, 2022
book-report

우리 팀은 어떻게 일 해야할까?

The Nature of Software Development라는 책은 애자일 소프트웨어 개발 선언에 참여하고 익스트림 프로그래밍 방법론 창시에 기여한 론 제프리스가 집필한 책이다. 특이하게도 제목이 번역되지 않은 상태로 출판되었는데 그냥 소프트웨어…

Aug 16, 2022
20 minute read
Aug 16, 2022
article
react
ui
component
frontend

Polymorphic한 React 컴포넌트 만들기

들어가기에 앞서 Polymorphism은 한국어로 다형성이라고 부르는데, 라는 의미를 가진 그리스어에서 유래된 단어다. 그럼 이 글의 제목에 포함된 Polymorphic은 혹은 등으로 표현할 수 있을 것이다. 컴퓨터 과학에서 다형성은…

Aug 5, 2022
24 minute read
Aug 5, 2022
book-report

올바른 코드를 위한 끝없는 고찰

코드 잘짜기 위해서 뇌 과학까지 알아야하다니!! 평소 이 책에 대해서 극찬하는 글을 자주봤는데 기대했던 것 이상으로 좋은 책이었다. 평소에 올바른 코드란 무엇인지에 대해서 정말 많은 고민을 했는데 이 책을 접한건 큰 행운이라 생각된다. 읽기 전엔…

Mar 20, 2021
20 minute read
Mar 20, 2021
article
datetime
deepdive

시간에 대해 탐구하기

글로벌 서비를 개발할 때 제일 중요한 것은 시간을 관리하는 것이라 말해도 무방하다. 그만큼 시간을 잘 다루는 것이 중요한 능력이며, 시간을 잘못 다루면 큰 문제가 발생할 수 있다. 그렇기에 이번 기회에 시간을 제대로 다루는 방법에 대해 알아보고자…

Mar 14, 2021
28 minute read
Mar 14, 2021
article
frontend
architecture
atomic-design

Effective Atomic Design

소프트웨어 개발 중 설계에서 가장 중요한 것은 모듈화와 추상화 두 가지라고 할 수 있다. 웹 프론트엔드 업계는 이미 React, Vue.js, Angular와 같은 오픈소스 프레임워크를 통해 끝을 달리는 추상화와 모듈화를 보여주고 있다. 특히 모듈화…

Feb 28, 2021
30 minute read
Feb 28, 2021
article
hacking
security
web

웹 개발을 위해 꼭 알아야하는 보안 공격

이번 포스팅에선 아주 중요하지만 프로그래밍 교육 과정에서 크게 다루지 않는 보안에 대해 이야기 해보려고 한다. 최근엔 프레임워크나 라이브러리 차원에서 잘 막아주기 때문에 큰 언급없이 넘어가는 경우가 많지만 소프트웨어 개발자는 꼭 보안 전문가가…

Feb 25, 2021
33 minute read
Feb 25, 2021
article
database
mongodb
server

MongoDB 이해하기

사내에서 MongoDB를 잘 쓰기위한 스터디를 하게되어 이번 기회에 관련 자료를 정리하기로 했다. MongoDB가 왜 필요한지, 더 잘사용하기 위해서 무엇이 필요한지를 중심으로 처음 MongoDB를 사용할 때 도움이 될 만한 내용으로 정리했다. N…

Feb 23, 2021
3 minute read
Feb 23, 2021
article

첫 포스트를 작성하며

나는 매사 불성실하고 게으름이 많은 성격이다. 하지 않아도 된다면 안 하는 귀찮음이 몸에 배어있는 모범적이지 못한 성격이다. 이 성격으로 인해 얼마나 많은 것을 놓치고 살았는지 이제 와선 아쉽고 씁쓸하지만, 끝끝내 못 고치는 걸 보니 이것이 내…