회사 업무 18

[Security] Spring Security Framework 개념편

관련 블로그 글[Security] 접근 제어 정책(Access Control) - https://jm-baek.tistory.com/370[Security] Spring Security Framework 개념편 - https://jm-baek.tistory.com/386[Security] 인증(Authentication) with Spring Security - https://jm-baek.tistory.com/385[Security] 인가(Authorization) with Spring Security - https://jm-baek.tistory.com/389[Security] Spring Security Framework 도입편 - https://jm-baek.tistory.com/388 목차들어가..

[Document] springdoc-openapi

작성자: 코드몬스터번역: ChatGPT참고 사이트: https://swagger.io/blog/api-strategy/difference-between-swagger-and-openapi/  Rest API 문서 작업을 위해 검색하면 아래와 같은 여러 단어 나온다. Swagger, openAPI, springdoc, springfox 등등.. 블로그를 찾아보면 Swagger 사용방법이라는 제목의 글이 나오고 해당 글 안에는 잘 못된 정보가 많은 것 같다.(사용 방법이 잘 못 됐다는 것은 아니다.)그리고 프로젝트에 적용한 라이브러리 이름만 봐도 swagger라는 단어는 없다. 즉, swagger 사용방법이 아니다. 결론은 다른 기술인데 각 기술의 기반 기술이 swagger이다. History여러 회사를 거..

[Document] API 명세서 툴 비교

API 명세서 툴 비교 ✅ 들어가기에 앞서회사 내부에 따로 프론트를 담당하는 분이 없어서 백엔드 개발자가 API를 만들고 JSP에 사용하는 방식이었다.외부에 명세서를 제공할 때는 엑셀 또는 PPT로 전달했다.이러한 방식 때문에 명세서 작성 및 템플릿을 중요하지 않게 생각했던 것 같다. 이번에 프론트 기술을 JSP에서 Vue.js를 변환하기로 하면서프론트 개발자와 외부 고객사에 제공하는 API 명세서 툴을 찾고 회의한 결과를 작성하려고 한다. ✅ 명세서 툴(Tools) ※ 개인적인 생각을 기반으로 작성했습니다. 1️⃣ Swagger라이브러리를 설치해서 사용하는 방법이 swagger 회사가 제공하는 라이브러리인지는 모르겠다. swagger 디자인을 기반으로 하고 있는 오픈 소스이지 않을까 하는 개인 생각이다..

[Security] 접근 제어 정책(Access Control)

관련 블로그 글[Security] 접근 제어 정책(Access Control) - https://jm-baek.tistory.com/370[Security] Spring Security Framework 개념편 - https://jm-baek.tistory.com/386[Security] 인증(Authentication) with Spring Security - https://jm-baek.tistory.com/385[Security] 인가(Authorization) with Spring Security - https://jm-baek.tistory.com/389[Security] Spring Security Framework 도입편 - https://jm-baek.tistory.com/388  목차들어..

[리팩토링] RestTemplate을 활용한 API 호출 서비스 계층 리팩토링

목차1. 들어가기 앞서2. 변경 전 코드3. 변경 후 코드1차 리팩토링 - 클래스 변수2차 리팩토링 - 유틸 클래스 분리3차 리팩토링  - 서비스 계층 추가✅  들어가기 앞서코드를 작성하다 보면 중복되는 로직이 존재한다‼️그 중 RestTemplate 클래스를 사용하여 다른 서버 API를 호출하는 부분이 계속 중복되었다. 이렇게 중복되게 사용하는 코드 처리는 아래와 같은 방법 중 하나를 선택해서 처리한다.클래스 변수로 빼서, 각 메서드에서 공용으로 사용한다.로직 의미에 따라서 common 또는 util 이라는 패키지에 넣어서 처리한다.이번 리팩토링은 1번과 2번의 과정을 모두 시도하면서 변화 되는 과정을 보여주려고 한다.✅  변경 전 코드각 메서드마다 new RestTemplate()로 restTempl..

자바 엔터프라이즈 플랫폼

※ ChatGPT한테 물어보면서 정리한 내용입니다. ※들어가기 전우리가 개발을 하다보면 JDK 버전, 스프링 또는 스프링 부트 버전을 확인을 한다.가끔씩 javax와 jakarta 이야기도 나오게 되는데 그렇구나 하고 지나쳤던 부분을 정리해보려고 한다.!!엔터프라이즈 플랫폼엔터프라이즈 플랫폼은 대규모 기업(Enterprise) 환경에서 요구되는 복잡한 소프트웨어 시스템을 개발, 배포, 실행, 관리하기 위한 기술과 도구의 통합 시스템입니다. 이 플랫폼은 비즈니스 애플리케이션을 효율적으로 개발하고, 유지보수하며, 확장 가능하도록 설계되었습니다.엔터프라이즈 플랫폼 종류1. Java EE (J2EE) / Jakarta EE정의: Java 기반의 엔터프라이즈 애플리케이션 개발을 위한 표준 플랫폼.주요 기능:트랜잭..

이벤트 기반 아키텍처 연구편 with RabbitMQ

관련 블로그 글이벤트 기반 아키텍처 도입편 with RabbitMQhttps://jm-baek.tistory.com/358분산 트랜잭션 with RabbitMQhttps://jm-baek.tistory.com/364분산 메세지 큐 1편 - 읽은 책https://jm-baek.tistory.com/325분산 메세지 큐 2편 - 읽은 책https://jm-baek.tistory.com/330 Monolithic Architecture(MA) Event Driven Architecture(EDA)해당 아키텍처를 메세지 기반 아키텍처라고도 부르지만 일반적으로 게시구독(Pub/Sub) 모델 이라고 부른다. 이벤트를 생성하고 소비하는 것에 대해서만 알면 되기 때문에 분리한다.    이벤트 기반 장점Decouplin..

실시간 알림 시스템 구현

관련 나의 블로그 글이벤트 기반 아키텍처 연구편 with RabbitMQhttps://jm-baek.tistory.com/363분산 트랜잭션 with RabbitMQhttps://jm-baek.tistory.com/364분산 메세지 큐 1편 - 읽은 책https://jm-baek.tistory.com/325분산 메세지 큐 2편 - 읽은 책https://jm-baek.tistory.com/330  ※ 계속 글을 다듬고 있는 중입니다. ※ 들어가기에 앞서현재 개발하고 있는 알림 서비스는 몇몇 기능을 맡아서 담당하고 있다.(순수하게 알림만을 위해서 동작하는 서비스가 아니다.) 그 이유는, 도메인 별로 서비스를 정확하게 다 나눠 버리면 개발자의 관리 포인트가 많이 늘어난다.최대한 유사하거나 비슷한 기능은 하나로..

[DevOps] 도커 도입편

왜 (나는) 도커를 도입하려고 할까?업무를 하면서 아래와 같은 상황이 발생할 수 있다(했었다).테스트 서버의 OS가 EOS 되고, 다른 OS로 변경이 필요할 때특정 고객의 서버 OS가 무엇인지에 따라 솔루션이 해당 OS에 문제 없이 동작하는지 준비해야할 때솔루션 설계로 여러 서비스가 실행될 때등등이러한 상황에서 개발자(?)는 아래와 같은 준비를 해야한다.배포 및 테스트 서버에 명령어를 하나씩 입력해서 필요한 프로그램을 설치 및 세팅아니면, 특정 OS에 맞춰 스크립트를 실행하면 설치되도록 스크립트를 작성어떠한 방법이든 준비하는데 시간이 생각보다 많이 소요된다.만약 준비하면서 설치에 오류가 발생하면 쉽지않다.(눈물 난다. 😂) 고생을 하면서 느낀점이 도커를 사용해서 설치하면 쉽게 되지 않을까 생각했지만,팀..