API를 개발할때 프론트와 원활한 소통을 위해서는 API 명세서가 필수이다. 명세서를 작성하는 여러가지 방법이 있는데 그 중 API 문서화를 자동으로 해주는 Swagger를 사용해보도록 하자.메이븐에 dependency를 추가한다.javaconfig 를 설정한다.htt
api 를 배포하면 구조를 쉽게 변경할 수 없기 때문에 효율적이고 확장 가능한 형태로 작성해야한다.http method 구분해서 사용 post:쓰기 get:읽기 put:수정 delete:삭제매핑된 주소 체계를 정형화Post /auth/loginPost /auth
처음 사용했기 때문에 굉장히 힘들었다...스프링에서 인증 및 권한 부여를 통해 리소스 사용을 쉽게 컨트롤 할 수 있는 spring security 를 제공한다. client가 어플리케이션에 요청을 보내면 , 서블릿 필터에 의해 시큐리티 필터로 시큐리티 작업이 위임되고
예외처리는 아주 중요하면서 까다로운 작업이다.찾아본바로는 과할만큼 상세하고 다양하게 예외를 잡아 처리하는것이 좋다고 한다.api 처리 중 특정한 exception이 발생할 경우 공통으로 처리하는 방법에 대해 알아보도록 하자.spring은 이러한 처리를 위해 Contro
Spring unit test (로그인 회원가입)
완전 바보같았다...spring security 문제였다.protected void configure(HttpSecurity http) throws Exception {....antMatchers("/auth/", "/\*/user/registeration", "/h2
코드 리뷰를 하던 중 팀원이 Transcational 어노테이션을 달아주면 좋겟어요! 다른 답변을 받았다...Transaction? DB 공부할때 들어본것같은데 뭐더라...! 해서 한번 정리하게 됐다.다들 이런 예를 많이 들더라.a가 b에게 10000원을 송금한다.송
가장 많이 쓰는 방식이다.부모 entity의 pk를 자식 entity가 pk이자 외래키로 사용한다.정규화가 된 모델링을 사용하기 때문에 데이터 중복이 없다.자식 entity 값을 모두 부모 entity 속성으로 합치는 방식이다.한테이블에 있으니 성능이 좋다.서비스 규모
OAuth는 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준이다카카오와 네이버 로그인 api를 사용해보도록 하겠다.ht
JPA 에서는 다중성을 위한 어노테이션을 제공한다.DB와 매핑하기 위해 존재하기 때문에 데이터베이스 관점에서의 다중성을 기준으로 고민해야한다. 1) 다대일 - @ManyToOne 2) 일대다 - @OneToMany 3) 일대일 - @OneToOne 4) 다대다 - @M
컨트롤러 FileService.javamultipart를 request해줘야한다.restDocs을 이용해 파일도 만들어야한다 -> RestDocumentationRequestBuilders결론 RestDocumentationRequestBuilders에서 request
오랜시간을 들여 진행하고 있는 작업이다.로컬 환경에서 어느정도 작업이 완성이 되어 글을 쓰게 되었다.MSA 환경에서 API 문서화는 어떤식으로 구성되는지 생각해보자. 현재 프로젝트가 4개의 서비스로 구성되어 있다. 그럼 API 문서도 각 서비스마다 만들어질거고 각 UR
소스 코드 파일을 실행 가능한 소프트웨어 산출물로 만드는 과정이다.빌드 단계중 컴파일이 포함되어 있다.빌드 과정을 도와주는 도구를 빌드 툴이라고 부르며 내가 사용할 빌드 툴은 메이븐이다.프로젝트 라이브러리 관리 (pom.xml)빌드미리 정해진 빌드 순서이다.출처 : h
네이버 클라우드 플랫폼 + Jenkins +maven 빌드 테스트 자동화 - (2) 네이버 클라우드 플랫폼으로 jenkins 서버 만들기
공통으로 처리해야 할 업무들에 대한 고민 (공통 프로세스)예를 들어 로그인 관련 처리, 권한체크, 로그, 인코딩, 예외처리 등이 존재한다.공통으로 처리해야할 업무를 모든 로직에 작성하면 중복코드가 많아지고 부하가 커진다.공통 처리를 위해 활용할 수 잇는것은 3가지1\.
네이버 클라우드 서버에 Jenkins multi branch pipeline 을 이용해 빌드 테스트 docker 배포하기 자동화 이전에 빌드와 테스트 자동화까지는 진행했다. 이번 글을 도커로 배포까지 자동화하는 과정을 설명하겠다. > - FROM: 생성할 이미지의
mkdir /docker/jenkinsdocker run -d \\ \--name my_jenkins \\ \-p 8080:8080 \\ \-v /docker/jenkins:/var/jenkins_home \\ \-v /var/run/docker.sock:/var/ru
게시글 마감기한 두고 마감기한 되면 자동으로 마감 ( 특정한 시간에 메소드 실행 @Scheduled ) 현재 경매 프로젝트에 경매 마감시간을 정해 마감시간이 되면 자동으로 마감처리를 해주도록 기획했다. 기획할때는 생각하지 못했는데 실시간 처리라는게 생각보다 힘들었다. 그래서 찾고 찾다가 @Scheduled 발견했다. @scheduled @EnableSc...
분산 시스템에서 서버, 클라이언트 구성에 필요한 설정 정보( application.yml)를 외부 시스템에서 관리하나의 중앙화 된 저장소에서 구성요소 관리 가능각 서비스를 다시 빌드하지 않고, 바로 적응 가능애플리케이션 배포 파이프라인을 통해 DEV - UAT - PR
config 파일과 rabbitmq 를 배포서버에 올렸더니 갑자기 엄청나게 디스트를 많이 차지하는 현상이 나타나면서 서버가 자동으로 꺼졌다....너무 끔찍한 현상...어쩔수없이 서버 ssd용량을 대폭 늘려야했다.ncp에서 storage 를 추가한다.나는 50gb ->
WebSocket은 서버와 클라이언트 간에 Socket Connection을 유지해서 언제든 양방향 통신 또는 데이터 전송이 가능하도록 하는 기술이다.Real-time web application구현을 위해 널리 사용되어지고 있다. (SNS어플리케이션, LoL같은 멀티
아마존 넷플릭스과 같은 해외 기업에서부터 배달의 민족, 쿠팡, 페이코와 같은 국내 IT기업까지 많은 기업에서 msa 전환 에 성공했다는 이야기가 들려온다.왜 많은 기업들이 msa 전환을 하고 있을까?그리고 필자의 프로젝트인 Dining-together 회식모아 프로젝트
각각의 서비스의 위치가 등록된 서버에서 특정 작업을 위한 서버의 위치를 파악하는 작업이다. Spring Cloud eureka server을 사용각각의 서비스가 자신의 위치(IP) 정보를 특정 서버에 등록 Registry하는 작업을 말한다. Spring Cloud Eu
모놀리스 방식과 비교하여 마이크로 서비스는 물리적으로 분산된 서비스간의 통신이 필수적이다.통신하는 방법을 알기 전에 communication type을 알아야한다.Synchronous HTTP communication 동기 방식Asynchronous communicat
회식모아 회사, 학교, 모임 등의 단체에서 진행하는 행사 및 회식에 있어, 예산과 인원에 대비한 효율적인 단체 회식 장소 선정을 위해 단체 사용자의 회식 공고와 외식업체의 견적 및 서비스 입찰로 이루어지는 msa 기반 경매방식