지금 뜨고 있는 포스트

백엔드가 이정도는 해줘야 함 - 1. 컨텐츠의 동기와 개요
city7310
필자는 고등학교 1학년 말에 처음으로 백엔드 포지션에서 프로젝트를 진행했다. 여기저기서 자주 우려먹는 교내 공식 기숙사 관리 시스템인데(파업 상태일 수도 있다), 같은 동아리였던 선배와 함께 Vert.x라는 서버 프레임워크가 지원하는 Vert.x-Web 툴킷으로 Java 8 런타임에서 돌아가는 웹 어플리케이션 서버를 개발했었다. 지금 생각해보면 참 많은 문...
백엔드가 이정도는 해줘야 함 - 2. 버전 관리 시스템과 버전 관리 웹호스팅 서비스 결정
city7310
이번엔 버전 관리 시스템과, 이러한 버전 관리 시스템을 사용하는 프로젝트를 지원하는 웹호스팅 서비스를 결정해보도록 하자. 각각 Git, SVN / GitHub, BitBucket같은 것을 예로 들 수 있다. 소스코드 형상관리 시스템이나 소스코드 관리 시스템 같은 명칭으로도 종종 불리는데, 나는 그냥 버전 관리 시스템이라고 부르는 게 더 편한 것 같다. ...
백엔드가 이정도는 해줘야 함 - 3. 개발 프로세스 정립
city7310
이번엔 백엔드 포지션에서 어떤 방식으로 개발을 진행할지를 결정하자. 개발 프로세스 정립에 대해 두 가지의 의사결정을 진행할 것이다. 도입 이유 개발 프로세스 정립 개발 프로세스는 어떻게 이슈를 관리하고, 어떤 방식으로 작업을 진행하고, 완료된 작업은 어떤 과정을 거쳐서 실제 제품에 반영시킬지와 같은 것들을 규칙화시킨 것이다. 소프트웨어 공학...
백엔드가 이정도는 해줘야 함 - 5. 사용자 인증 방식 결정
city7310
li 하위 code 태그에 폰트가 깨지는 문제가 있어서 마음이 아픕니다. 고쳐줘요 벨로퍼트님 ㅎㅎ 이번에는 사용자 인증 방식을 결정하자. SNS나 우리가 만드려는 서비스처럼 계정 개념이 들어가고, 리소스가 특정 사용자에게 귀속되는 서비스라면 인증이 꼭 필요하다. 도입 이유 사용자 인증 방식 HTTP는 연결 지향 프로토콜인 TCP 기반임에도...
What’s New in JavaScript for 2019 (Korean Translation) (한국어 번역)
dongwon2
위글은 David님의 “What’s New in JavaScript for 2019”글을 번역한 글입니다. 원본 글 최근 몇년 동안, JavaScript는 새로운 언어의 특징들과 함께 꾸준히 발전해오고 있습니다. 만약 여러분이 다음 버전의 자바스크립트가 궁금하다면 이 글은 여러분의 것입니다. 우리가 최신 기능들을 이야기하기 전에 어떻게 새로운 아이디어가...
백엔드가 이정도는 해줘야 함 - 9. Compute Engine 결정과 Hello World 서버 배포
city7310
이번엔 Compute Engine을 결정하자. 우리가 구현한 서버를 실행할 위치를 결정하는 것이다. 아래 3가지에 대해 의사결정이 필요하다. * 어떤 컴퓨팅 파워를 이용할 것인지(출처) * 만약 외부 서비스를 이용하기로 했다면, 어떤 서비스를 사용할 것인지 * 해당 서비스에서 제공하는 컴퓨팅 엔진들 중 어떤 것을 사용할 것인지 등 오늘 하게 ...
백엔드가 이정도는 해줘야 함 - 13. 웹 어플리케이션 개발
city7310
개발 다 하고 나서 그냥 스냅샷 링크만 던져줘도 되겠지만 여기도 '일러두기' 설명을 좀 하는 게 좋을 것 같아서 챕터를 나눴다. 일러두기 이슈 라벨의 변경 3. 개발 프로세스 정립 챕터에서 이슈 라벨을 minor/major, feature/bug/enhancement로 설정해 두었으나, 이슈 라벨을 선택하기가 너무 애매해서 minor/majo...
백엔드가 이정도는 해줘야 함 - 6. API 스펙 설계와 문서화 방식 결정 - (1)
city7310
맨날 뭐 결정만 하느라 지쳤으니, 이제 드디어 조금이라도 생산적인 작업을 해보자. API 스펙 설계와 문서화 방식 결정인데, 우리가 여태까지 의사결정한 결과물들이 이 작업의 기반이 되어 도움을 줄 것이다. 여기로 다시 끌어와 보면, * HTTP API 설계 원칙을 기반으로 API 스펙을 디자인하기로 했다. * JSON을 직렬화 포맷으로 결정했다. ...
백엔드가 이정도는 해줘야 함 - 6. API 스펙 설계와 문서화 방식 결정 - (2)
city7310
API 스펙 설계가 끝났으니 이제 프론트엔드 팀에게 전해줄 문서를 작성해야 한다. 이거야 뭐 대충 마크다운같은 걸로 열심히 시간 쏟아서 정리해도 되는 부분이지만, 더 나은 방법이 없을지부터 고민해 보자. 이번 챕터에서는 API 문서화 방식을 결정한다. 의사결정 API 문서화 방식 난 처음에 엑셀로 API를 문서화했다. 메소드 URI, 요청 ...
백엔드가 이정도는 해줘야 함 - 8. 의존성 관리 도구 결정
city7310
이번엔 의존성 관리 도구를 결정하자. pip, npm, yarn, gem, maven, gradle 등과 같은 의존성 관리/빌드 도구를 써본 적 없다면 이해하기 어려울 수 있으니 의존성 관리 도구(Dependency Manager)라는 글을 읽어보자. 프로젝트 한두번 하면서 의존성 관리를 해 본 경험이 있다면 더욱 좋다. 도입 이유 의존성 관...
백엔드가 이정도는 해줘야 함 - 4. API 설계 원칙과 직렬화 포맷 결정
city7310
이번엔 API 설계 원칙과 직렬화 포맷을 결정한다. 대부분의 경우 이 두가지는 '당연히 REST랑 JSON 아님?' 하며 관례적으로 결정하고 넘어가곤 하지만, 빼먹지 말고 이것도 의사결정 과정을 끼워 두자. 사실 이 앞에 프로토콜을 결정하는 챕터를 넣어두려 했는데, 거기까진 너무 TMI인 것 같아서 나중으로 미뤘다. 프로토콜은 일단 현재로선 일반적으로 사용...
백엔드가 이정도는 해줘야 함 - 7. 어플리케이션 기술스택 결정과 Hello World 서버 작성
city7310
문서화도 다 끝났으니 로직을 코드에 옮기기만 하면 된다. 그러나 아직 어떤 언어를 쓸지/의존성을 어떻게 관리할지/어떤 데이터베이스를 어디서 운영할지와 같은 것들이 정해지지 않아서 바로 개발에 착수하기는 어렵다. 이번에는 어플리케이션 기술스택(프로그래밍 언어와 프레임워크)을 결정하고, /에 GET 요청 시 'Hello World'를 text/plain으로 반...
백엔드가 이정도는 해줘야 함 - 12. 어플리케이션 레벨 의사결정 - (2)
city7310
어플리케이션 레벨 의사결정은 이제 반 정도 한 것 같다. 뭐 이렇게 자잘한 것까지 다 결정하냐 싶겠지만, 내가 맘대로 정하고 통보하는 것보단 나을 것 같았기 때문에, 그리고 꽤 재밌는 이야깃거리일 것 같아서 이렇게 하고 있다. 12챕터의 내용들은 딱히 몰라도 상관 없기 때문에, 맘에 안 들면 그냥 13챕터로 넘어가도록 하자. 의사결정 시각 데...
💻 유용한 생산성 툴 몇가지 소개
chris

💻 유용한 생산성 툴 몇가지 소개

2018년 11월 10일12개의 댓글
소개에 앞서 저는 개인적으로 생산성을 높여주는 툴들에 관심이 많습니다. 어떤 툴을 선택하기 전에 항상 많은 선택지를 놓고 상세히 비교 후 선택합니다. 이 글에서는 VSCode, Slack, Homebrew, Alfred 처럼 아주 유명하고 대부분 알고계시고 사용하시는 툴 보다는, 유용하지만 생각보다 많은 분들이 모르시는 툴을 위주로 소개해드리고자 합니...
백엔드가 이정도는 해줘야 함 - 11. 배포 자동화
city7310
이번 주제는 배포 자동화다. 원래 CI(Continuous Integration)와 CD(Continuous Deployment)같은 것들을 이야기해보려 했으나, 배포 자동화라는 용어가 덜 추상적이고 더 명시적이라 용어 선택을 선회했다. 도입 이유 배포 자동화 배포라는 과정은 불필요한 반복 작업이다. 우리가 만들고 있는 웹 어플리케이션의 경...
백엔드가 이정도는 해줘야 함 - 10. 데이터베이스 선정과 인스턴스 시작
city7310
이번엔 서비스 운영을 위한 메인 데이터베이스를 결정하고, AWS 클라우드 위에서 해당 데이터베이스 엔진을 사용하는 인스턴스를 하나 띄워보자. 가상 컴퓨팅 환경 하나 단위를 AWS에서는 인스턴스라고 부른다. 도입 이유 데이터베이스 데이터베이스는 엑셀을 떠올리면 된다. 데이터베이스의 가장 중요한 특성은 구조화된 데이터를 관리한다는 점이다. 'I...
백엔드가 이정도는 해줘야 함 - 12. 어플리케이션 레벨 의사결정 - (1)
city7310
여태까지 많은 의사결정과 작업을 섞어가며 우리가 개발에만 집중할 수 있는 환경을 열심히 만들어 봤다. 아직 꽤 부족한 상황이지만, 우리의 프로토타입 어플리케이션을 개발하는 데에는 이 정도면 충분하다. 이번엔 코드를 작성하는 데에 있어서 이런저런 판단의 기반이 될 의사결정을 진행하고자 한다. 깊게 고민할 건 딱히 아니고 체크리스트 정도라 각각의 의사결정은 (...
2018년, 내가 모르는 기술들
chris

2018년, 내가 모르는 기술들

2019년 1월 19일25개의 댓글
(위 이미지는 원작자의 블로그글에는 없는 이미지이며, 제가 임의로 넣은 이미지입니다. 출처) 들어가며 많은 주니어 개발자, 또는 몇몇 시니어 개발자 조차도 가면증후군(Imposter Syndrome)에 시달립니다. 가면증후군이란 "높은 성취의 증거에도 불구하고 자신이 똑똑하거나 유능하거나 창의적이지 못하다고 믿으며, 자신의 능력에 대해 남들을 기만...
리액트의 새로운 기능, Hooks 알아보기
velopert
React Hooks 는 v16.8 에 도입된 개념으로서, 함수형 컴포넌트에서도 상태 관리를 할 수 있는 useState, 그리고 렌더링 직후 작업을 설정하는 useEffect 등의 기능을 제공합니다. 이에 대하여 한번 자세히 알아봅시다.
react-native 전역일계산기앱 군돌이 개발기 #2
jon
react-native 전역일계산기앱 군돌이 개발기 1 글을 velog에 2018년 9월 29일에 썼었는데 드디어 개발기를 썼습니다. 시리즈로 하려고 했지만 시리즈로 끌면 재미없고 쳐질 것 같아 하나로 끝냅니다. 원문 링크는 blog.holy.kiwi입니다. 190127intro 2018년 9월 3일에 전역일계산기 앱 군돌이를 구글 플레이스토어에 처음...