처음 API를 만들기 시작하면서 REST API를 알게되었다. 그리고 프로젝트를 진행하면서도 REST API를 만들고, 나름 RESTful하게 설계했다고 생각하고 있었다. 이러한 생각의 기저에는 이전에 블로그에 이와 관련된 내용을 정리했었고, 많이 찾아봤었다는 근거가
Prometheus는 SoundCloud 사에서 만든 오픈소스 시스템 모니터링 및 경고 툴이다.많은 회사에서 사용 중이며 활발한 커뮤니티가 있다. 현재는 독립 오픈 소스 프로젝트이며 어떤 회사와도 독립적이다.Prometheus는 측정 항목을 time series dat
SSL(Secure Socket Layer) 또는 TLS(Transport Layer Security)은 전송계층 상에서 클라이언트, 서버에 대한 인증 및 데이터 암호화를 수행한다. 클라이언트와 서버 양단 간 응용계층 및 TCP 전송계층 사이에서 안전한 보안 채널을 형
Route53은 AWS의 도메인 이름 시스템(DNS), 도메인 이름 등록, 상태 확인 웹 서비스이다. 📌 DNS : 도메인 이름을 IP 주소로 변환하여 도메인 이름을 브라우저에 입력할 때 사용자를 어느 서버에 연결할 지를 제어한다.DNS를 상태 확인 서비스와 결합하여
root 권한 접근github에서 스크립트 받아와서 실행하기설치되었는지 확인제대로 설치되었다면 docker를 입력하면 도커 명령어들이 나온다.Linux는 다중 사용자 시스템으로 여러 사용자가 접속해서 사용한다. 또한 서버용 OS로 많이 사용되기 때문에 권한에 대한 관리
백준 5597 과제 안 내신 분 문제를 풀다가 stream에서 특정 범위의 정수를 생성하는 메서드가 생각이 났다. 시도 했다가 다양한 것을 알게 되어서 포스트로 남긴다.IntStream과 LongStream은 지정된 범위의 연속된 정수를 스트림으로 생성해서 반환하는 r
앞서 작성한 테스트 코드로는 중복이 많이 발생할 수 있어서 이를 방지하기 위해 리팩토링을 진행하였다.Group API를 작성하며 관련 controller test를 리팩토링한 구조를 적용하여 만들었다. 그리고 현재 구조에서의 테스트 코드 작성법 및 REST doc 작성
✏️ 적용 과정 1\. build.gradle 설정 (1) spring-restdocs-asciidoctor build/generated-snippets 에 생긴 .adoc 조각들을 프로젝트 내의 .adoc 파일에서 읽어들일 수 있도록 연동해준다. 이 덕분에 .ad
💡 카카오는 유저정보 제한이 심하여 보류하였다.https://blog.naver.com/mds_datasecurity/222182943542 OAuth회원, 회원가입회원 통합시키는 구간 필요 UserLoginService 합쳐도 될 듯 → repository
포스트 삭제는 물리적 삭제가 아니라 논리적 삭제로 구현하였다. 그래서 기본 jpa 메서드인 delete()를 사용하지 않고, 쿼리를 이용해서 post entity의 isDeleted()값을 true로 바꾸고 삭제 날짜를 지정하는 로직을 만들었다.⌨️ PosrReposi
SpringSecurity를 적용하면 컨트롤러 테스트에서도 인증이 필요하다. 이 때 가짜 사용자로 테스트를 실행할 수 있는 방법이 @WithMockUser이다. MockUser는 아래와 같은 속성을 가진 MockUser를 만들고 WithSecurityContextFac
SecurityConfiguraion에서 .permitAll()를 설정한 uri 요청(join, login 등)에도 JwtFilter를 거치면서 Authorization header에 관한 에러 로그 (authorization header가 없다는 로그)가 계속 남았다
어플리케이션을 실행하면 이렇게 무한으로 로그가 발생하고, 어플리케이션이 실행되지 않는다.⭕️ 해결swagger와 충돌하면 생긴 문제였다. 어제는 swagger를 설정하고 ui 페이지를 새로고침하지 않아서 적용되지 않았는데, 오늘 다시 켜니 적용되면서 이러한 문제가 보였
spring security를 이용해 jwt로 로그인 및 인증을 구현하고 있었다. 그런데 header의 Authorization에 jwt를 넣고 로그인을 다시 호출하니 jwt를 validation하는 로직이 실행되었다. 아래 SecurityConfiguration처럼
REST 예외를 처리하기 위해 일반적으로 Spring MVC에서 @ControllerAdvice 및 @ExceptionHandler를 사용하지만 이러한 핸들러는 요청이 DispatcherServlet에 의해 처리되는 경우 작동한다. 그러나 보안 관련 예외는 필터에 의해
아무런 설정을 하지 않고 서버의 도커 컨테이너에서 시간을 입력한 경우 UTC 기준 시간이 데이터베이스에 들어온다.글로벌 서비스가 아니라면 일단 한국 시간을 입력하는 것이 편할 것이다.EC2 리눅스의 시스템 시간을 변경했지만 도커 컨테이너에는 시간 설정이 적용되지 않았다
docker push 에서 denied: requested access to the resource is denied 에러가 났다.gitlab password를 token으로 넘겨주어도 같은 문제가 발생하였다.⭕️ 해결\[https://gitlab.com/gi
.gitlab-ci.yml 파일을 작성하며 깃랩 로그인을 위해 gitlab 아이디와 비밀번호를 변수로 넘겨야 한다. 그리고 깃랩에는 이를 masking 해주는 기능이 있고 이는 8자 이상부터만 지원된다. 그러나 내 username은 7자라 보안을 위해서는 변경이 필요했
DB 설계 순서1️⃣ 요구사항 수집 분석실제 세계에서 어떤 시스템을 구축할 것인지에 대한 요구사항 수집요구사항에 대해 어떤 데이터들이 필요한지, 어떤 기능들이 필요한지 분석2️⃣ 개념적 설계핵심 Entity 도출ERD 작성3️⃣ 논리적 설계ERD-RDB 모델을 통해 개