본문 바로가기

기타/기타41

Open API Spefication 활용하기 - 4편 ( yaml 파일 기반으로 자동으로 retrofit2 코드 생성하기 ) 안녕하세요. 오늘은 Open API Specification 활용하기 마지막편입니다. 오늘 알아볼 내용은 3편에서 자동으로 만든 Open API Specification yaml을 기반으로 자동으로 retrofit2 코드를 만들어보도록 하겠습니다. 환경 Client의 환경은 이전 프로젝트와 동일하게 Spring Boot, Kotlin 환경으로 진행하도록 하겠습니다. kotlin 1.6.21 Spring Boot 2.7.3 gradle kotlin dsl 7.5 yaml 파일 자동으로 만들어낼 client Open API Specification 파일은 아래와 같습니다. 아래 파일은 이전 시간 3편에서 자동으로 만들어낸 yaml 파일과 동일한 파일입니다. 3개의 API Operation을 가지고 2개의 D.. 2022. 9. 15.
Open API Spefication 활용하기 - 3편 ( Spring Boot 에서 yaml 파일 자동으로 만들기 ) 안녕하세요 ! 오늘은 Open Api Specification 3번째 시간입니다. 오늘 포스팅할 주제는 Spring Boot에서 Controller Class를 만들고 이렇게 만들어진 Controller Class를 기반으로 자동으로 yaml 파일을 만들어보도록 하겠습니다. 환경 간단하게 서버의 환경을 말씀드리면 아래와 같습니다. 저는 테스트를 kotlin 기반으로 작성했지만 Java로도 충분히 동일한 결과를 얻어내실 수 있을 것입니다. kotlin 1.6.21 Spring Boot 2.7.3 build.gradle.kts plugins spring boot의 Controller 코드를 자동으로 변환하기 위해서는 아래의 plugin이 추가로 필요합니다. 해당 플러그인을 추가해주세요. 1.4.0 버전은 2.. 2022. 9. 12.
Open API Spefication 활용하기 - 2편 ( yaml 파일 분석하기 ) 안녕하세요. 오늘은 Open API Specification 2편입니다. 이전시간에 yaml 파일과 json 파일을 샘플로 확인했었습니다. 오늘은 해당 샘플 파일을 뜯어보면서 Open API Spefication의 구성요소들에 대해서 알아보는 시간을 가져보도록 하겠습니다. 샘플 아래는 이전 시간에 확인했던 Open API Specification의 전체 yaml 파일입니다. 파일을 보면 위에서부터 버전, 정보, 그리고 server의 주소 및 각 path에 대한 정보가 담겨져있습니다. 더보기 openapi: 3.0.1 info: title: OpenAPI definition version: v0 servers: - url: http://localhost:8080 description: Generated s.. 2022. 9. 9.
Open API Spefication 활용하기 - 1편 ( Overview ) 안녕하세요. 오늘부는 Open API Specification에 대해서 알아보고 Client와 Server의 API를 일치시키는 자동화 과정에 대해서 알아보도록 하겠습니다. 이번 시간에는 기본적으로 OPen API Spescification이란 무엇이며 어떻게 구성되어있으며 어떻게 사용할 수 있을지에 대해서 알아보며, 이후 시간에는 yaml 파일을 분석해보도록 하겠습니다. 그리고 나서 실습으로 OpenAPI Specification Tool을 이용하여 클라이언트 소스를 생성해보기도 하고 서버코드를 기반으로 OpenAPI Specification을 작성해보도기도 하겠습니다. OpenAPI Specification 이란 OpenAPI Specification은 HTTP API의 인터페이스를 정의하는 문서입니.. 2022. 9. 2.
[기타] 가독성(readable) 좋은 코드와 인지 부하(recognite load)에 대한 고찰 안녕하세요. 오늘은 가독성 좋은 코드란 어떤 코드인가에 대해 우연히 책을 읽다 공감가는 글을 발견 하였고 스스로의 생각을 정리해보면 좋겠다라는 생각을 가지게 되었습니다. 오늘은 제가 생각하는 가독성 좋은 코드는 어떤 코드인가에 대해서 한번 포스팅하려고 합니다. 코드 작성과 가독성 좋은 코드 코드를 작성할 때 가독성(readability)을 신경쓰면서 작성하는 것은 당연한 이야기 입니다. 가독성 좋은 코드란 그 코드를 읽었을 때 이해하기 쉬운 코드를 뜻합니다. 가독성 좋은 코드를 위한 팁과 내용들은 대표적으로 클린코드라는 책이 있고 또한 조금만 검색해도 가독성을 높이기 위한 많은 자료들이 나옵니다. 실제로 프로젝트를 진행하다보면 새롭게 처음부터 작성하는 경우도 있지만 대부분의 경우 기존의 코드를 수정하거나.. 2022. 6. 28.
[markdown] mermaid를 이용해서 UML 그리기 - 상태(status) 다이어그램 안녕하세요. 오늘은 mermaid를 이용해서 UML을 그려보는 마지막 시간입니다. 오늘 그려볼 다이어그램은 스테이터스 다이어그램입니다. 상태 다이어그램 객체는 특정 상태를 지니며 이 상태는 이벤트와 같은 액션에 의하여 상태는 변경될 수 있습니다. 이러한 객체의 상태와 상태의 변화를 도식화 한 다이어그램이 바로 객체 상태 다이어그램입니다. 한 객체에 대해서 그 상태가 변화됨에 따라 할 수 있는 액션이 바뀔 수 있습니다. 이럴 경우 스테이터스 관리가 중요하게 됩니다. 이런 상황에서 스테이터스 다이어그램은 중요한 도식도가 됩니다. mermaid를 통해서라면 스테이터스 다이어그램 또한 수도코드를 통해서 작성할 수 있습니다. 혹시 상태 다이어그램에 대해서 좀 더 아시고 싶으신 분들은 [UML] 상태 머신 다이어그.. 2022. 2. 2.
[markdown] mermaid를 이용해서 UML 그리기 - 시퀀스 다이어그램 안녕하세요. 오늘은 mermaid에 대해서 알아보는 2번째 시간입니다. 오늘은 mermaid를 이용하여 시퀀스 다이어그램을 그리는 방법에 대해서 알아보도록 하겠습니다. 시퀀스 다이어그램(Sequence Diagram) 시퀀스 다이어그램은 여러 참여하고 있는 컴포넌트들의 상호작용 다이어그램입니다. 이 다이어그램은 시간 순서대로 프로세스가 어떤 흐름을 가지는지를 보여줍니다. 아래는 제 개인 프로젝트에서 이루어지고 있는 파일 업로드 기능에 대해서 시퀀스 다이어그램을 그려본 예제입니다. 이렇듯 mermaid를 이용하면 쉽게 수도코드만으로 시퀀스 다이어그램을 그릴 수 있는것을 확인할 수 있었습니다. 시퀀스 다이어그램에 대해서 궁금하신 분들은 [UML] 시퀀스 다이어그램 이해하기를 참고해주시기 바랍니다. seque.. 2022. 1. 16.
[markdown] mermaid를 이용해서 UML 그리기 - 플로우차트 안녕하세요. 오늘은 mermaid에 대해서 알아보는 시간을 가져보도록 하겠습니다.mermaid란 markdown 문법으로 diagram을 그려주는 라이브러리입니다.mermaid 란 ?mermaid는 markdown으로 UML을 그릴 수 있는 언어입니다.이 mermaid를 이용하면 쉽고 직관적으로 UML을 그릴 수 있습니다.수도 코드를 통해서 작성하기 때문에 다이어그램 뿐만 아니라 수도 코드를 통해서도 흐름을 이해할 수 있다는 것도 장점이라고 여겨집니다.그렇다면 실제로 mermaid를 사용하는 방법에 대해서 알아보도록 하겠습니다.pluginmermaid를 사용하기 위해서는 markdown에 plugin이 필요합니다.editor 별 plugin 리스트를 참조해서 본인이 사용하시는 editor에 플러그인을 .. 2022. 1. 9.
[gradle] buildSrc를 이용한 gradle 의존성 관리 안녕하세요. 오늘은 gradle의 의존성 관리를 좀 더 명확하고 유지관리하게 쉽게 할 수 있는 gradle의 buildSrc에 대해서 알아보는 시간을 가져보도록 하겠습니다. 빌드 도구의 상수와 함수 코딩을 하면 기본적으로 자주 사용하는 함수 또는 상수에 대해서 별도의 파일로 선언하여 여러 곳에서 참조할 수 있게합니다. 이렇게 함으로써 중복 코드를 줄이고 코드의 가독성도 높일 수 있습니다. 이건 이 글을 읽고 있는 개발자이신 여러분들에게는 기본적인 것이겠지요. gradle 에서도 buildSrc를 이용하면 이러한 방법으로 script를 작성할 수 있다는 사실을 알고 있으셨나요 ? buildSrc를 이용하면 build script를 더 쉽게 유지보수하고 가독성을 향상시킬 수 있습니다. buildSrc와 in.. 2021. 11. 22.
[gradle] gradle의 퍼포먼스를 늘릴 수 있는 유용한 정보 및 옵션들 요즘은 spring의 빌드 도구로 java, kotlin을 가리지 않고 gradle을 많이 사용합니다. 오늘은 이와 관련된 주제로 gradle의 퍼포먼스를 늘릴 수 있는 유용한 정보 및 옵션드에 대해서 알아보는 시간을 가져보도록 하겠습니다. 의존성을 주입할 때 dynamic version 보다는 static version을 사용하자 일반적으로 의존성을 주입할 때 dnynamic version 보다는 static version을 사용하는 것을 권장합니다. 이유는 버전을 dynamic version으로 하게되면 이후 특정 모듈의 버전이 올라감에 있어서 호환성 이슈가 발생할 수 있기 때문입니다. 이와는 별개로 static version을 사용하는것이 좋은 이유가 있습니다. 바로 성능적인 문제입니다. grad.. 2021. 10. 13.
[flyway] flyway를 통해 DDL 형상관리를 하자 - Spring Boot (Java API) 편 안녕하세요. 오늘은 flyway를 이용하여 로컬 환경에서 DDL의 형상관리를 하는 방법을 알아보도록 하겠습니다. flyway flyway는 데이터베이스의 형상관리를 목적으로 하는 툴입니다. 데이터베이스의 형상 관리란 어떤 것일까요? git을 통하여 우리가 코드를 관리하는 것의 데이터베이스 버전으로 볼 수 있습니다. git에서는 코드를 파일별로 로깅을 통해서 변화의 이력을 추적합니다. flyway는 데이터베이스의 DDL의 이력을 쌓아서 DDL이 어떻게 변화되었는지 관리하는 툴로 사용할 수 있습니다. 위 이미지는 flyway 공식 홈페이지에 나와있는 이미지로 DDL 형상관리의 이해를 위해서 가져왔습니다. 위 이미지를 보시면 Axel과 Christian이 별개로 DDL을 만들고 있습니다. 그리고 서버로 배포할.. 2021. 9. 17.
[UML] 상태 머신 다이어그램 이해하기 안녕하세요. 오늘은 오랜만에 UML의 시간을 가져보고자합니다. 오늘 알아보고자 하는 UML은 상태 머신 다이어그램입니다. State Machine Diagram (객체 상태 다이어그램) 상태 머신 다이어그램 모델이란 객체의 행동 다이어그램 중 하나입니다. 객체는 특정 상태를 지니며 이 상태는 이벤트와 같은 액션에 의하여 상태는 변경될 수 있습니다. 이러한 객체의 상태와 상태의 변화를 도식화 한 다이어그램이 바로 객체 상태 다이어그램입니다. 외부에 비동기적으로 데이터를 전송하고 이벤트를 수신함에 있어서 응답 확인 처리를하는 시나리오가 있을 수 있습니다. 이럴경우 이를 상태 머신 다이어그램으로 나타낼 수 있습니다. 아래의 이미지를 보시면 명확하게 알 수 있습니다. 아래의 이미지는 전송 완료 상태에서 응답 확.. 2021. 9. 9.