ChatGPT? 요즘 OpenAI에서 공개한 ChatGPT가 화제입니다. 유튜브에서도 블로그에서도 관련 글이 많이 보이는데요. 흥미가 생겨서 저도 한 번 사용해봤는데, 결과는 놀라웠습니다. ChatGPT는 OpenAI에서 공개한 인공지능 챗봇입니다. GPT 3.5를 기반으로 하여 자연스러운 질답이 가능하며, 여러가지 프로그래밍 언어로 코드를 작성해주거나, 기존 코드를 리팩토링해주기까지 합니다. 저도 처음에는 큰 기대…
[카테고리:] Programming
좋은 코드를 위한 조언 7가지
좋은 코드? 본론으로 들어가기 앞서서, 좋은 코드란 무엇일까요? 여러 가지 기준 중에서도 가장 중요한 것은 수정하기 쉬워야 한다는 것입니다. 코드는 필연적으로 계속해서 수정됩니다. 새로운 기능을 추가하든 버그를 잡든 코드는 수정되어야 하고, 수정되지 않는 코드는 죽은 코드가 됩니다. 코드가 이해하기 쉽고 안전해야 수정하기도 쉽습니다. 이해하기 어렵고…
의존성 주입에 대한 오해와 실수들
의존성 주입 Dependency Injection 객체 지향 프로그래밍을 하다 보면, 의존성 주입을 자주 사용하게 됩니다. 의존성 주입이 무엇인지 설명하기 전에, 첫 번째 오해를 먼저 소개합니다. 오해 1: 의존성 주입은 배워야 쓸 수 있다? 의존성 주입이라는 모호한 이름과, 의존성 주입을 사용하면 이러이러한 것이 좋다! 하는 설명들 때문에…
객체지향, 테스트에 관련된 정말 좋은 글 소개
인터넷의 숨겨진 보물들 이리 저리 웹 서핑을 하면서 여러 글을 읽다보면, 우연히 정말 멋진 보물들을 발견하곤 합니다. 얼마 전 웹 서핑을 하다가 발견한 멋진 글을 소개합니다. 객체지향의 여러 특징들과 테스트 가능성에 대해 너무나 잘 설명해주고 있습니다. 정진욱님(Github 프로필)의 블로그 글입니다. 2016~2017년에 걸쳐 작성된 글인데요. 더…
애자일의 몰락과 소프트웨어 장인정신의 비극
*이 포스트는 Robert C. Martin 님의 허락을 받아 blog.cleancoder.com 의 글“The Tragedy of Craftsmanship.“를 번역한 것입니다. 저작권에 유의하시기 바랍니다. 원문에 대한 설명 (역자주) 이 글은 클린 코드의 저자로 유명한 Robert C. Martin 님이, 리팩토링의 저자로 유명한 Martin Fowler 님의 2018년 애자일 오스트레일리아 키노트 발표의 내용을…
객체지향 5원칙 (SOLID)은 구시대의 유물 ?
*이 포스트는 Robert C. Martin 님의 허락을 받아 blog.cleancoder.com 의 글“Solid Relevance“를 번역한 것입니다. 저작권에 유의하시기 바랍니다. 서론 얼마 전 누군가의 고민이 담긴 메일을 받았습니다. 이런 내용이었죠: 오랫동안 객체지향 5원칙, SOLID principle에 대한 이해도는 저희 채용 프로세스에서 중요한 부분을 차지하고 있습니다. 지원자가 원칙들을 잘 이해하고…
이상적인 객체지향 if else switch 조건문?
*이 포스트는 Robert C. Martin 님의 허락을 받아 blog.cleancoder.com 의 글 “if-else-switch“를 번역한 것입니다. 저작권에 유의하시기 바랍니다. 서론 얼마 전 누가 트위터에 올린 글이 있습니다. 아래 PHP 코드 스타일 중에 어떤 것이 최고냐, 아니면 혹시 더 좋은 스타일이 있냐 하는 질문이였죠. 그래서 저는 아래처럼 암호문같은…
학교 도움 없이 비전공자 개발자가 되는 방법
개발자가 되는 데는 돈이 필요없다? 그렇습니다. 열정만 있다면 돈은 전혀 필요가 없습니다. 개발자들은 가지고있는 지식들을 전부 인터넷에 풀어놓기 때문입니다. 그것도 스스로, 아주 적극적으로요. 정보 공유가 가지는 힘을 다들 알고 있기 때문입니다. 그렇기 때문에 좋은 정보들을 잘 찾아내는 능력만 기른다면, 누구든 좋은 개발자가 될 수 있습니다….
함수형 프로그래밍 vs 객체지향 프로그래밍
*이 포스트는 Robert C. Martin 님의 허락을 받아 blog.cleancoder.com 의 글 “FP vs. OO“을 번역한 것입니다. 저작권에 유의하시기 바랍니다. 서론 지난 몇 년간 저는, 함수형 프로그래밍을 배우면서 “음.. 그건 너무 객체지향인데요.”라는 식으로 객체지향 프로그래밍에 반감을 표현하는 사람들을 봐왔습니다. 왜인지는 몰라도 함수형 프로그래밍과 객체지향 프로그래밍이 상호…
알고리즘 문제를 잘 풀면 뛰어난 개발자일까?
뛰어난 개발자는 문제도 잘 푼다 결론부터 말하자면, “알고리즘 문제를 잘 풀면 뛰어난 개발자일까?”의 답은 “아니오.”입니다. 하지만 뛰어난 개발자는 당연히 알고리즘 문제도 잘 풉니다. 오잉? 같은 이야기를 조금 더 자극적으로 표현해보겠습니다. 문제풀이를 잘 하지 못하면 뛰어난 개발자가 될 수 없다. 뛰어난 개발자 중에 문제풀이를 잘 못하는…