슬랙 앱을 만들면서 다음에 같은 실수와 삽질을 하지 않도록 기록하는 포스팅. (API 구현은 AWS Lambda에 Node기반으로 구현하였다.) 슬랙 앱 설정 관련 1. 슬랙에서 앱을 호출해야 한다면 Workspace에 설치되어야 한다. 2. 슬랙 앱이 Bot으로 호출되어야 한다면 Bot 설정이 필요하다. `App Hom`메뉴에서 Bot으로 설정 Display Name(Bot Name)과 Default Name 설정을 해야한다. 3. 대화식 상호작용을 구현하고 싶다면 Interactivity 설정을 해준다. 슬랙내 대화식 상호작용, 버튼이나 숏컷과 같은 컴포넌트로 대화식 상호작용을 구현하고 싶은경우 Interactivity 설정에 API를 명시한다. 4. Slash Command를 구현하고 싶다면 Sla..
IntelliJ Live Template IntelliJ에 Live Template 기능을 이용하면 공통적으로 혹은 반복적으로 작성되는 코드를 지정해두었다가 빠르게 삽입하는 기능을 말한다. 자세한 기능에 대한 설명은 아래 영상으로 갈음한다. :) Live Template으로 테스트 코드 작성하기 Live Template기능은 이전부터 알고 있었는데, 필요성을 느끼지 못하고 사용하지 않다가 반복적인 테스크 코드 구조를 짜다가 드디어 현타가 오고 말았다. 모든 테스트 코드를 자동으로 할 순 없지만, 매번 import 하는 과정을 줄일 수 있었고 @MethodSource를 활용한 테스트 코드는 템플릿으로 등록해 두면 편하게 작성할 수 있다. 개인이나 팀마다 테스트 코드를 작성하는 방식이 조금씩 다르나 Live..
maven 저장소에 라이브러리를 올리는 방법에 대해서 알아보고 삽질내역을 공유하겠습니다. Java 프로젝트이며 빌드툴은 Gradle을 사용했고, 버전관리 사이트는 Github을 사용했습니다. Step 1. bintray 가입하기 - bintray는 라이브러리(jar파일) 파일들을 업로드 할 수 있는 저장소입니다. - 오픈소스소프트웨어(OSS)로 가입해야 무료로 이용가능합니다. (OSS이기 때문에 public 한 저장소만 사용가능) https://bintray.com/signup/oss (OSS 가입주소) Step 2. bintary에 Repository(저장소) 생성하기 - 삽질포인트 1. (bintray 웹사이트 주의사항~!) (20.09.12 현재) bintray가 페이지 레이아웃을 변경중이라, Ne..
동기(sync) vs 비동기(async), 블로킹 vs 논블로킹 사전적 의미는 일단 치워두고, 대조되는 개념들을 어떤 관점으로 봐야하는지 짧게 설명해보겠습니다. 동기 vs 비동기 : 처리해야 할 작업들을 어떠한 '흐름'으로 처리 할 것인가에 대한 관점 블로킹 vs 논블로킹 : 처리되어야 하는 (하나의) 작업이, 전체적인 작업 '흐름'을 막느냐 안막느냐에 대한 관점 이제 동기 vs 비동기, 블로킹 vs 논블로킹을 예제로 쉽게 설명해보겠습니다. 등장인물 개발팀장 : 개발팀 작업의 흐름을 조율하고, 개발팀 사원들에게 업무를 지시한다. 사원1, 사원2, 사원3 : 개발팀장이 지시한 일을 성실하게 수행한다. 시나리오1 (비동기 + 논블로킹) 개발팀장이 사원1에게 업무A를, 사원2에게 업무B를, 사원3에게 업무C를..
이 포스팅은 개인적, 주관적 해석이 듬뿍 들어가있습니다. TDD(Test-Driven-Development)란? TDD 창시자 켄트 백이 TDD라는 용어를 만들기 전에 먼저 고려 했던 키워드는 TFP (Test-First-Programming)입니다. 말 그대로 테스트 코드를 먼저 만들고, 실제 프로덕션 코드를 나중에 만드는 개발 방법을 말합니다. 그래서 TDD와 상반되는 개념으로 테스트 코드를 나중에 작성하는 방식을 TLP(Test-Last-Programming) 혹은 TLD(Test-Last-Development)라고 합니다. TDD없이 개발할 때 종종 겪는 개발 시나리오 프로덕션 코드 A 만들기. 코드A의 테스트 코드 작성하기. (테스트는 당연히 통과된다. 작성된 프로덕션 코드에 끼어맞춰서 테스트 ..