본문 바로가기

분류 전체보기984

JSR 303, 380, @Valid, @Validated 보호되어 있는 글 입니다. 2023. 7. 23.
외부 API를 사용하는 테스트 코드 개발을 하다 보면 외부 서버의 API를 이용하는 경우가 매우 많다. 혹은 외부 라이브러리를 테스트해야 하는 일도 생긴다. 현재 나는 회원 인증을 위한 코드를 작성하는데, 해당 테스트 코드를 어떻게 작성해야 하는지 고민 중이다. 첫 번째 고민은 다음과 같다. 테스트 코드를 실행함에 있어 실제 외부 API 호출을 진행할 수 없다. 비용적인 문제와 테스트 코드의 검증 시간적인 문제가 발생한다. private val vonageClient: VonageClient fun verify(verifyRequest: VerifyReq): VonageVerifyResult { runCatching { vonageClient.verifyClient.verify(createVerifyRequest(verifyRequest).. 2023. 7. 19.
Scope functions Kotlin 표준 라이브러리에는 객체의 컨텍스트 내에서 코드 블록을 실행하는 것이 유일한 목적인 여러 함수가 포함되어 있습니다. let, run, with, apply and also와 같은 함수는 모두 객체에서 코드 블록을 실행하는 동일한 작업을 수행하는데요. 각 함수의 차이점은 블록 내에서 이 객체를 사용할 수 있게 되는 방식과 표현식의 결과입니다. 몇 가지의 유형 별 예제를 통해 어떻게 scope function을 사용하는지 알아봅니다. Person("Alice", 20, "Amsterdam").let { println(it) it.moveTo("London") it.incrementAge() println(it) } 만약 동일한 코드를 let 키워드 없이 사용한다면 새로운 변수를 선언하고, 반복해.. 2023. 7. 15.
lambda in computer programming 우선 우리는 표현식과 구문을 구분할 줄 알아야 한다. 구문(statement)은 이름에서 나타난다. 반복문, 조건문, 분기문, 선언문 등등 프로그램의 흐름 제어나 구조를 생성할 때 사용되는 문법이다. 표현식(expression) if, while, for문에서 사용되는 조건식이 있다. 이는 표현식이다. 이는 값으로 실행 시점에 값으로 표현되어 참 혹은 거짓의 값을 나타낸다. 이를 이해하면 프로그래밍 언어가 발전됨에 따라 늘어나는 간소화된 문법을 이해하는데 큰 도움이 된다. 이제 Wikipedia에서 lamba, Anonymous function을 검색해 보자. In computer programming, an anonymous function (function literal, lambda abstract.. 2023. 7. 14.
Vonage Verify API https://github.com/sungil-yu/essentory GitHub - sungil-yu/essentory: 회원 가입 프로세스 중 휴대폰 인증. 회원 가입 프로세스 중 휴대폰 인증. Contribute to sungil-yu/essentory development by creating an account on GitHub. github.com 외부 라이브러리를 사용함에 따라 익셉션 처리에 대해 고민이 많았다. 이제 테스트 코드를 작성해야하는데, mock, spy 주제로 공부하면서 작성해야 겠다. 추가적으로 코틀린의 문법을 공식문서에서 한 번 더 봐야겠다. 가독성이 좋지 않아보이는데, 리팩토링도 계속해야겠다. 2023. 7. 14.
Naver Code Convention Naver Code Convention을 적용하려고 한다. https://github.com/naver/hackday-conventions-java GitHub - naver/hackday-conventions-java: 캠퍼스 핵데이 Java 코딩 컨벤션 캠퍼스 핵데이 Java 코딩 컨벤션. Contribute to naver/hackday-conventions-java development by creating an account on GitHub. github.com 다음 링크에서 다음 섹션을 확인한다. .editorconfig 설정 Naver 코드 컨벤션 설정으로 해당 파일을 프로젝트 루트 경로에 생성한 후 소스코드를 소스 코드 저장소에 같이 커밋한다. https://naver.github.io/.. 2023. 7. 12.
🛠️ Swagger ? API 문서에 대해 고민한 적이 있다. 이유는 API 문서를 노션에 관리해서 소비자에게 전달했는데, 정말 귀찮은 프로세스였다. 개발 - 테스트 - API Notion 최신화 - 수정 - 개발 - 테스트 - API Notion 최신화 아니 다른 방법이 있다. 찾고 적용하자라는 마인드로 REST Docs 찾아서, 적용한 적이 있다. 이때 고생 아닌 고생을 해야 했는데, 우선 모든 API에 대해 테스트 코드를 다시 작성했다. UI를 위해 Asciidoctor인가? 문법을 보면서 template를 작성했다. 설정도 복잡했고, 가장 중요한 건 코드 작업량이 미쳤다는 것이다. 테스트 코드도 유지보수의 작업인데, 이게 혼자 백엔드를 개발하는데 감당이 안된다. 같이하면 뭐.. 그래도 마무리했다.. 이번 팀프로젝트에서 .. 2023. 7. 12.
코딩 테스트, 코드 리뷰, 인터뷰 피할 수 없으면 즐겨 보호되어 있는 글 입니다. 2023. 7. 12.
스크럼이 뭐야? 어느 개발 조직은 스크럼을 매일 진행한다고 한다. 스크럼이 뭘까? 애자일 소프트웨어 개발 방법론 중 하나인 스크럼을 말하는 것일까? 방법론적인 입장에서 생각해 보면 스크럼은 팀 기반의 프로젝트 관리 접근 방식이라고 한다. 스크럼은 개발 프로세스를 반복적이고 적응적으로 진행하는 데 초점을 두며, 복잡한 문제를 해결하기 위한 효과적인 방법을 제시한다고 한다. 소비자의 의견을 반영하여 빠른 배포를 위한 하나의 개발 방법론인가요? 스크럼은 다음과 같은 구성 요소로 이루어져 있다고 합니다. 1. Product Backlog 개발해야 할 모든 작업 항목을 우선순위에 따라 나열한 목록입니다. 제품의 백로그는 제품의 요구 사항과 기능을 기술해야 합니다. 음. 이번 팀프로젝트에서 진행되어야할 리스트업이 있다고 했는데, .. 2023. 7. 12.
R&R R&R은 Role and Responsibility의 약자로, 직무와 책임을 의미한다. 서버개발 Unit의 R&R은 다음과 같이 구분된다. 서버개발 엔지니어 서버 시스템의 설계, 개발, 운영을 담당합니다. 서버 시스템의 성능, 보안, 안정성을 확보합니다. 서버 시스템의 신규 기능 개발 및 유지 보수를 수행합니다. 실제 개발 업무는 회사마다 상이하다. 예를 들면 웹 백엔드인 경우 Service API, CMS API, DataBase, BackEnd 개발이 있다. Service API는 서비스의 기능 및 데이터를 제공하는 기능 개발이며, CMS API는 서비스에 사용되는 콘텐츠를 관리하기 위한 admin 전용 API 개발이다. 이에 따른 Database 역량이 요구되며, BackEnd 개발은 서버 아키텍처.. 2023. 7. 12.