본문 바로가기

API5

ktor을 통해 택배 배송상태 조회 시스템을 만들어보자 Kotlin을 주로 사용하고 있는 BE 개발자로서, 항상 ktor 프레임워크에 관심을 가지고 있습니다. 그러던 와중, 전자책 기기를 샀는데 배송이 언제 오는지 궁금해하다가, 택배 배송상태를 조회하는 API를 호출하고 응답을 보여주는 시스템을 만들어 보면 어떨까 싶었습니다. 그래서? 개발해 봤습니다 ㅎ 목차 0. 택배사 조회 API 선정 1. 만드는 시스템 소개 2. ktor로 만들어보자! 3. 결과 0. 택배사 조회 API 선정 일단 각 택배사에서 배송상태 조회 사이트를 제공하고 있긴 한데, 이걸 open API 형태로 제공하고 있는 것은 아닙니다. 다행히도 택배사 상관 없이 조회할 수 있는 서비스가 몇 개 있습니다. 스마트택배 API Delivery Tracker 스마트택배 API는 무료 플랜이 있지만.. 2023. 6. 4.
어떻게 하면 호출한 API의 처리 완료 시점을 알 수 있을까? (부제: socket 삽질기) 글 쓰기에 앞서, 이 문제는 결국 해결하지 못하였음을 밝힙니다. 아직 제가 발견하지 못한 적절한 해결법이 있을 것이라고 생각합니다. 나중에라도 제가 해당 방법을 찾는다면 별도 글로 작성 후 링크를 달아 두도록 하겠습니다. 목차 0. 개요 1. API 및 로직 소개 2. Socket 연결을 사용하여 예쁘게 구현했다 3. 문제점 발생, 해결법 고민 4. 정리 0. 개요 해당 내용은 업무 중 개발하다가 경험한 내용을 재구성한 것입니다. 따라서 예시에 사용되는 코드 및 구체적인 로직은 실제 업무와는 무관함을 미리 알립니다. 웹 서비스를 사용하다 보면, 파일을 올리면 해당 파일을 분석 후 결과를 보여 주는 식의 서비스가 있습니다. 문서를 올리면 내용을 인식해 주거나, 이미지를 올리면 고해상도로 업스케일링 해 주는.. 2022. 10. 9.
[Spring] 스프링 웹 개발의 기초 개요 지금까지 Spring Boot를 이용해 간단한 서비스를 만드는 과정을 체험해 보았고, 어렴풋이 Spring 개발은 어떻게 진행되고, 어디에 어떤 클라스를 작성하는지 알게 되었습니다. Spring을 어느 정도 체감하였으니, 이제 내부 구조, 동작 방식 등 이론적인 내용을 알아볼 때라고 생각됩니다. Spring으로 웹 서비스 개발을 할 때, 컨텐츠를 보여 주는 방법은 크게 세 가지가 있습니다. 정적 컨텐츠 MVC API 이 세 방식에 대해 각각 간단한 소개를 해 보려고 합니다. 더 자세한 내용인 추후 공부하며 알아갈 예정입니다. 정적 컨텐츠 정적 컨텐츠라고 함은, 변화가 없는 컨텐츠를 뜻합니다. 사진, 문서 등 있는 그대로를 보여주는 것을 정적 컨텐츠를 보여준다고 하며, 어떤 사용자가 와도 같은 내용을.. 2022. 3. 3.
[혼자 구현하는 웹서비스] 4. 머스태치로 화면 구성하기 0. 개요 1. 서버 템플릿 엔진과 머스태치 소개 2. 기본 페이지 만들기 3. 게시글 등록 화면 만들기 4. 전체 조회 화면 만들기 5. 게시글 수정, 삭제 화면 만들기 0. 개요 템플릿 엔진에 대한 소개 (서버 템플릿 엔진, 클라이언트 템플릿 엔진)와 함께 JSP와 비교해 보고, 이어서 머스태치를 통해 기본적인 CRUD 화면 개발 과정에 대해 다룬다. 1. 템플릿 엔진과 머스태치 소개 먼저 템플릿 엔진의 개념에 대해 다루겠다. 이 글을 참고해도 좋다. 웹 개발에서 템플릿 엔진이란, 지정된 템플릿 양식과 데이터가 합쳐셔 HTML 문서를 출력하는 소프트웨어를 뜻한다. JSP, Freemarker, React, Vue 등이 떠오른다면, 그게 맞다. 단, JSP, Freemaker는 서버 템플릿 엔진이으로,.. 2021. 7. 20.
[혼자 구현하는 웹서비스] 3. (2) JPA 테스트 코드 및 API 작성 1. Spring Data JPA 테스트 코드 작성하기 2. 등록/수정/조회 API 만들기 3. JPA Auditing으로 생성시간/수정시간 자동화하기 1. Spring Data JPA 테스트 코드 작성하기 앞에서 작성한 코드가 잘 작동되는지 테스트하기 위한 코드를 작성해 본다. test 디렉토리 아래에 domain.posts 패키지를 생성하고, 테스트 클라스는 PostsRepositoryTest라고 하자. 이 테스트에서는 다음과 같이 save, findAll 기능을 테스트한다. @After는 Junit에서 단위 테스트가 끝날 때마다 수행되는 메소드를 지정한다. 보통은 배포 전 전체 테스트를 수행할 때 테스트간 데이터 침범을 막기 위해 사용한다. 위 코드에서도 deleteAll()을 통해 남아 있는 데이.. 2021. 7. 9.