Skip to main content

리팩터링 2판

· 3 min read
Sewon Kim
Software Engineer @Neurocle

리팩터링 2판. : 코드 구조를 체계적으로 개선하여 효율적인 리팩터링 구현하기

약 500장의 두꺼운 기술서적을 3개월의 시간을 투자해 1회독 했습니다. 개발자 필독서라고 하면 빠지지 않고 올라오는 도서라 도대체 무슨 내용이기에 다들 입을 모아 좋다고 하는지 궁금했거든요. 다행히도 리팩터링 2판은 예시가 JS로 쓰여있어서 더 읽을만 했던 것 같습니다. JAVA로 쓰여있었던 클린코드(로버트 C. 마틴의 책)는 나중엔 조금 휘뚜루 마뚜루 읽어내려갔던 경험이 있었는데 리팩터링은 코드를 꼼꼼히 살펴보며 읽을 수 있었습니다.

그래서 이 책을 읽고 뭔가 달라졌나요?

사실 왕초보 개발자 시절부터 '리팩터링'이라는 말은 자주 써왔었습니다. 그렇지만 지금까지 시니어와 함께 일해본 경험이 없어서 내가 하고 있는 것이 맞는 건지, 어떻게 보면 귀찮고 사소한 작업인데 꼭 해야하는지, 어떤 이유를 들어서 리팩터링을 하도록 팀원을 설득할 수 있을지 등에 대한 고민이 있었는데요. 이 책을 읽으면서 리팩터링에 대한 이유와 방법에 대해서 조금 더 명확하게 이해할 수 있었습니다. 가장 큰 변화는 지금까지 회사에서 잘못 사용하고 있었던 '리팩터링'에 대한 개념을 바로잡을 수 있었습니다.

소프트 스킬

· 3 min read
Sewon Kim
Software Engineer @Neurocle

소프트 스킬이란 대인 관계에서 활용되는 기술을 말합니다. 코드 작성보다 논의가 많았던 요즘, 소프트 스킬의 중요성을 뼈저리게 느꼈습니다. 그래서 이 책을 읽어보게 되었어요.

존 손메즈의 프로그래머로 사는 법

표지에는 '평범한 개발자의 비범한 인생 전략 71가지', '흔한 개발자, 존 손메즈. 그는 어떻게 33세에 은퇴했을까?'라는 문구가 적혀있습니다. 이 문장들이 암시하는 것처럼 이 책은 일반적인 소프트 스킬에 대한 것이라기보다는 개발자로서의 삶에 대한 이야기가 주였습니다. 그래서 (미국)개발자로서의 삶에 대한 이야기를 들으려면 좋은 책이지만, 소프트 스킬에 대한 내용을 기대하고 읽는다면 실망할 수도 있을 것 같아요. 제가 책 이름을 다시 짓는다면 '존 손메즈의 프로그래머로 사는 법'이 딱 어울릴 것 같다고 생각했습니다. 기술 서적이라기보다는 자서전에 더 가까운 책처럼 느껴졌어요.

작은 것 챙기기 - 상수화

· One min read
Sewon Kim
Software Engineer @Neurocle
  • 상수로 선언하지 않은
  • 소스코드에 여러 번 등장하는
  • 숫자, 문자열 자체로는 의미를 이해하기 어려운

숫자를 매직 넘버, 문자열을 매직 리터럴이라고 합니다.

요즘 <리팩터링>(마틴 파울러 저)이라는 책을 읽고 있는데 저자가 성능보다 더 강조하는 것은 바로 코드의 가독성이었습니다. 어떤 코드를 보고 책을 읽듯이 술술 읽힌다면 좋은 코드라는 것인데 그런 관점에서 보면 매직 넘버와 매직 리터럴은 코드의 가독성을 저해합니다.

예를 들어


function foo(mode) {
if(mode === 0) return '안녕하세요';
else if(mode === 1) return '안녕';
}

이 때, 위의 코드에서 0과 1이 무엇을 의미하는지 코드만 보고는 알 수가 없고, 이로인해 추후 유지보수가 어려워질 수 있습니다.

2021 오픈소스 컨트리뷰션 참가로 배운 것

· 3 min read
Sewon Kim
Software Engineer @Neurocle

2021년 7월, 오픈소스 컨트리뷰션 멘티로 선정되어 활동했던 내용을 기록합니다.

멘티 참가신청

SSAFY에서 2개의 프로젝트를 vue로 진행해본 경험이 있는데요. 참가 당시만해도 React보다는 vue에 더 자신이 있는 상태였습니다. 프로젝트 진행하면서 구글에서 제일 자주 봤었던 캡틴판교 기효님이 멘토로 계신 Cracking vue.js 프로젝트에 참가신청을 했고, 멘티로 선정이 되었습니다.

오픈소스 컨트리뷰션 프로젝트에는 직접 개발을 하는 종류의 프로젝트도 있지만 제가 참여했던 Cracking vue.js 처럼 문서화를 하거나, 번역을 하는 프로젝트도 있습니다. 저는 문서화하는 것에 관심이 많았고, 기효님의 블로그만 봐도 알겠지만 워낙 글을 잘 쓰시는 분이라서 문서화에 대해 많이 배우고 싶어서 프로젝트에 지원했습니다. 덤으로 프론트엔드 관련 공부와 커리어에 대해서도 이야기를 많이 나눠보고 싶었어요.

목표

오픈소스 컨트리뷰션이 퇴근 후 시간을 내어 참여하는 것이기 때문에 생각보다 열심히 참여하기 힘들 수 있는데요. 참가 전에 스스로의 작은 목표를 세워놓으면 도움이 됩니다.

당시의 목표는 문서화 능력 향상, 커뮤니케이션 능력 배우기(PR 리뷰 같은 것에서도), vue press로 사이트 제작하는 법 배우기, SSR 공부, 라이브러리 버전업에 대처하는 방법 배우기 등을 목표로 세웠었는데요. 이루지 못한 것들이 더 많아서 아쉽긴 합니다😅 하지만 퇴근 후에 뭔가를 한다는 것은 정말 쉽지가 않더군요...

코어 자바스크립트

· One min read
Sewon Kim
Software Engineer @Neurocle

지금 알고 있는 걸 그때도 알았더라면...

2019년 취준을 막 시작하고나서 2번째로 봤던 면접이었다. '자바스크립트로 토이 프로젝트도 하나 했고, 알고리즘 테스트도 통과했으니 그래도 첫 면접보다는 할 말이 있겠지?' 라는 생각으로 참여했던 면접은 처참히 망했다. 면접관 분들이 arrow function이 무엇인지 왜 ES6에서 arrow function이 생겼는지 아는지에 관한 질문을 했을 때, 여러 힌트를 주셨음에도 불구하고 제대로 대답하지 못했었다. 그 때 이 책을 읽고 갔었더라면 그런 멍청한 대답은 하지 않았을 텐데...!

실제 책은 이렇게 두껍지 않음

실제 책은 이렇게 두껍지 않음

이 책에서는 크게 총 7가지의 자바스크립트 개념을 소개한다. 보통의 JS 입문서처럼 타입으로 시작하지만 단순한 문법 설명이라기보다는 동작 원리에 좀 더 초점을 맞추고 있어서 입문보다는 중급 지식을 공부하기에 좋은 책이라고 생각한다.

2022 year in review

· 4 min read
Sewon Kim
Software Engineer @Neurocle

저는 12월부터 시작해서 늦게는 1월까지 지난 한 해를 돌아보는 시간을 참 좋아합니다. 2022년은 처음으로 1년을 꽉 채워 개발자로서 일했던 한 해였기 때문에 돌아볼만한 의미가 있는 것 같습니다. 회사 안에서 그리고 회사 밖에서의 개발을 정리해보고, 2023년에는 어떤 방향으로 나아가면 좋을지 생각해 보았습니다.


Docusaurus에 Disqus로 댓글 추가하기

· 2 min read
Sewon Kim
Software Engineer @Neurocle

블로그는 기록의 용도도 있지만 더 많은 개발자 분들과 소통할 수 있는 창구라고 생각합니다. 이전 jekyll 블로그에서도 Disqus로 댓글 기능을 연동해서 사용 중이었는데요. Docusaurus로 만든 이번 블로그에서도 댓글을 달아보았습니다.

글쓰는 개발자가 되기 위한 블로그 v3.0

· 2 min read
Sewon Kim
Software Engineer @Neurocle

제가 처음 기술 블로그를 시작한 때는 바야흐로 2019년 여름이었습니다. 본격적으로 취업준비를 시작했을 때, 큰 생각없이 Github로 취업하기 포스팅을 보고 Github을 관리하기 시작하면서 블로그도 시작하게 되었습니다. 그 후 2년간 꾸준히 알고리즘을 비롯한 CS 지식, Web 개발 관련 지식, SSAFY 관련 내용, TIL등을 작성했고, 2021년 8월 취업에 성공했습니다. 블로그가 결정적인 영향을 주었다고 생각하지는 않지만 취업에 있어서 긍정적인 영향은 주었다고 생각합니다. 그리고 2년간 500여 개의 글을 작성하면서 기록을 좋아하는 제 성향을 알게되었습니다.