전체 글60 개발자는 뭐하는 사람일까? 개발자가 해야하는 일? 코드 작성 코드는 뭐하러 작성할까? 사용자의 요구사항을 충족하는 서비스 개발 개발한 서비스 유지보수 객체지향의 사실과 오해에 따르면, 변화하는 요구사항에 대응하는 사람. 그렇기 때문에 변경에 대응할 수 있도록 설계해야 한다. 그러기 위해선 "잘" 짜야한다. 코드를 읽는 대상은 둘이다. 사람과 기계. 개발자는 사람과 기계 사이에서 통역하는 역할을 한다. 기계와 대화하기 위한 스킬 기계에 대한 이해 네트워크 운영체제 프로그래밍 언어 숙련도 성능 고려 사람과 대화하기 위한 스킬 커뮤니케이션 스킬 개발자와, 기획자와, QA팀과, 고객과 대화해야 한다. 글쓰기 & 말하기 아는 것을 글로, 말로 설명할 수 있어야 한다. 잘 읽히는 코드를 만들기 위해서는 잘 쓸줄 알아야 한다. 클린 코드 2021. 11. 15. [Concurrency in go] 비정상 고루틴의 치료 Go 동시성 프로그래밍(concurrency in go) 책의 5장 비정상 고루틴의 치료 부분을 참고하여 스터디 발표용으로 작성한 자료입니다. 코드는 여기서 볼 수 있습니다. ⚠️ 주의! 함수 반환, 클로저 등의 설명이 발표자의 언어로 충분히 번역되지 않았습니다. 비정상 고루틴의 치료 치료 고루틴이 건강한 상태인지 확인하고 건강한 상태가 아니라면 재시작하는 메커니즘 치료하기 위해 생존여부를 확인하려는 목적으로 하트비트 패턴을 사용. 패턴사용시 작업을 잘 수행하고 있다는 추가 정보를 포함시켜야 함. 이 절에서는 단순화를 위해 고루틴의 작동여부만을 고려 나쁜 상태에서 스스로 회복하는 방법을 알아내기 위한 작업을 수행하는것이 고루틴의 관심사가 되어서는 안된다. 하트비트 동시 프로세스가 외부로 생존 신호를 보내.. 2021. 11. 7. 주니어 개발자의 우당탕탕 이직기 다른 사람의 이직기를 보면서 공감, 위안, 도움을 얻었다. 이 글도 누군가에게 도움이 되기를. 전 회사 전 회사(A사라고 하겠다)는 나의 첫 회사였다. 사실 이 글을 쓰기 전에 A사 이야기를 글로 풀어보려 했는데 너무 부정적인 분위기의 글을 작성해버렸다. 남들에게 공개하기 조심스러워 일단은 깊숙이 잘 숨겨두었다. 가볍게 언급만 하자면, 안타깝게도 나는 A사에서 개발자로써 성취감이나 자부심을 가질 수 없었다. 나는 회사를 인터넷으로 배운 신입 개발자였고, 개발 조직에는 당연히 개발 문화가 있고 열정적으로 일할 것이라고 생각했다. 그러나 그곳은 내가 아는 개발 조직과는 조금 다른 곳이었다. 부정적인 마인드로 스스로를 갉아먹었는데 그러다보니 몸과 마음이 점점 병들어갔고, 여기저기 아프기 시작했다. 여기에다 팀.. 2021. 10. 24. GORM 맛보기 1 - 퀵스타트 이 글은 공식 홈페이지의 Quick Start 가이드에 설명을 덧붙이는 형태로 작성되었다. ORM이란? Object Relation mapping. 객체와 db를 매핑해주는 것. 매핑된 정보를 바탕으로 자동으로 SQL을 생성해준다. 자세히 설명된 블로그가 있어 링크로 대체한다. Golang의 ORM 과거에는 XORM(솜)을 사용했으며 현재는 GORM(곰)이 많이 사용되는 것으로 보인다. Quick start gorm 공식 홈페이지에서 제공하는 quick start를 약간 변형하여 사용했다. db는 docker postgresql을 사용하였다. docker run --name postgres -p 5432:5432 -e POSTGRES_PASSWORD=1234 -d postgres package main .. 2021. 8. 29. Cobra를 사용하여 CLI 개발 맛보기 이 글은 Cobra Github 를 참고하여 작성했습니다. 최근에 디스코드 봇을 개발할 일이 있었는데, 명령어는 어떤 형태로 내부적으로 구현하고 실행하는 것이 좋을까?를 고민하다가 다른 사람들은 어떻게 만들었을지 궁금했습니다. Saturday night 스터디를 통해 알게된 Cobra가 명령어와 관련된 유명한 예시라고 생각되어 사용해보고, 다른사람들의 코드를 찾아보기로 했습니다. 😀 Cobra와 CLI Command line interface는 간단히 말해 터미널에 텍스트를 입력하여 명령을 실행하는 방식을 의미합니다. 예를 들면 아래와 같은 형태로 명령을 실행합니다. docker start application git init 다른 패키지의 도움을 받고 싶지 않다면, os.Args 에서 매개변수를 직접 .. 2021. 8. 1. git hooks를 사용하여 commit 전에 go test 실행하기 (테스트 강제하기) .git/hooks/pre-commit 파일에 저장 후 권한을 755로 설정하면 git commit시 실행됩니다. #!/bin/sh FONT_YELLOW="\033[33m" BG_RED="\033[41m" NO_COLOR="\033[0m" # set test flag here GOTEST="go test -v ./..." # (1) echo "${FONT_YELLOW}>> Run [ `echo ${GOTEST}` ] before commit.${NO_COLOR}" # (2) ${GOTEST} # (3) if [ $? -ne 0 ]; then # (4) echo "${BG_RED}>> Commit fail! Check your code.${NO_COLOR}" # (5) exit 1 fi (1) git co.. 2021. 7. 18. Golang의 test 이야기 이 글은 Saturday night study의 발표를 위해 작성한 내용입니다. go 1.16버전을 기준으로 작성했습니다. Test? 소스 코드의 특정 모듈이 의도된 대로 정확히 작동하는지 검증하는 절차. 함수를 검증하는 함수를 작성하는 것. 테스트 종류 단위 테스트 Unit(단위) + Test(테스트) 인수 테스트 (acceptance test) 사용자의 요구사항을 만족하는지 테스트 통합 테스트 (integration test) 기능들이 통합적으로 잘 작동하는지 테스트 단위/인수/통합테스트를 범위로 나누는게 아니라 목적에 따른 분류라고 생각함. 어떻게 작성해야 하는가? Go 테스트 코드 작성하기 테스트에 사용하는 프레임워크는 xUnit이 대표적이나 golang은 테스트 프레임워크를 내장하고 있다. 작성.. 2021. 7. 18. OKKY 세미나 - 개발자에게 좋은 이직과 좋은 퇴사를 위한 꿀팁(21.07.15. 이경일님) 이동욱 개발자님의 글로 많은 도움을 받았고 세미나를 들어보고싶다! 라고 생각했던 이경일님이 OKKY 세미나를 또 한번 진행하셨습니다. 다시 네이버로 가셨다고 하네요 :) 이 글은 세미나를 요약한 글입니다. 세미나는 21. 07. 15. 줌으로 진행하였으며 생략한 내용이 많아 실제 발표 내용과 차이가 있을 수 있습니다. 너무 개인적인 이야기는 제거했습니다. 이경일님의 개발에 대한 열정과 노력이 느껴져서 개인적으로 부럽고 자극이 되었습니다. 예정시간은 1시간이었지만 추가로 1시간 이상 QnA를 해주셨고, 너무 열심히 답변해주셨습니다. 질문자분들이 다들 나랑 비슷한 고민을 하고있구나! 라는걸 느꼈습니다. 저는 코로나 이후로는 이번 세미나가 처음이었는데 정말 많은 자극과 도움을 받았습니다. 이 글을 읽으시는 분.. 2021. 7. 15. WebSocket 개념과 장점, 그리고 왜 사용하는지 알아보자 정의 하나의 TCP 접속에 전이중 통신 채널을 제공하는 컴퓨터 통신 프로토콜 목적 기존 방식의 단점 개선. 기존의 양방향 통신 (왜 써야할까?) HTTP 프로토콜 HTTP는 클라이언트의 요청이 있어야만 서버가 응답할 수 있다. 반대로 서버가 먼저 보내는 요청은 클라이언트가 받을 수 없다. 이 단점을 개선하기 위해 나온 기술이 Polling이다. Polling은 주기적으로 서버에 요청을 보내서 받을게 있는지 확인하는 방법이다. 단점은 서버측에서 보낼 내용이 없어도 클라이언트는 알 수 없기 때문에 계속해서 request를 보내 확인을 해야하고, 지속적인 연결과 해제는 handshake가 필요하기 때문에 서버에 부담을 준다. 클라이언트가 많아질수록 더욱 커지게 된다. 이 polling의 단점을 조금 개선한 것.. 2021. 7. 15. 이전 1 2 3 4 5 6 7 다음