일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 노드
- 병행제어
- 되추적
- OS
- NEST
- 스프링부트
- DB
- node.js
- AWS
- S3
- 데이터베이스
- 디비
- 컴퓨터 보안
- 탐욕기법
- 인터럽트
- 컴퓨터
- 백준
- 백트래킹
- node
- 보안
- API문서
- 운영체제
- ES6
- IT
- DATABASE
- 자바스크립트
- rest docs
- 컴퓨터보안
- 알고리즘
- access control
- Today
- Total
목록전체 (106)
개발스토리
회사에서 새로운 프로젝트를 시작하는데 REST API 설계부터 하고 api 문서를 뽑아내기 위해 REST Docs를 적용하기로 했다. Spring REST Docs? - Asciidoctor를 사용해서 API 문서를 생성하도록 돕는 것이다. 나는 여러 사이드 프로젝트를 하면서 API 문서를 전달하기 위해 swagger, postman, notion 등을 사용했었다. 이번에는 REST Docs를 적용해야 해서 오랜만에 글을 써본다. 우선 여러 방법으로 api 문서를 뽑아내면서 느낀 점을 간단히 소개해보겠다. swagger - 실제 코드에 어노테이션들이 추가 되면서 문서가 생성된다. - 가독성 측면에서 여러 어노테이션이 달리면 지저분해 보일 수 있다. 실제로 지저분해 보이긴했다. - 하지만 많이 쓰이는 이유..
테스트 코드를 작성하는 환경을 구축하는 것은 중요하다. 처음에 가장 어렵고, 귀찮고, 시행착오도 많이 겪는 과정이라고 생각한다. 테스트 환경을 구축하는 과정에서 많은 부분을 고려해야 하지만 특히 주의해야할 부분은 "멱등성"이다. ■ 멱등성이란 여러번 연산을 실행해도 결과가 바뀌지 않는 성질을 뜻한다. HTTP method에서 보자면 POST를 제외하고 나머지는 멱등성을 만족한다. POST 요청을 반복한다면, 데이터들은 계속해서 추가가 되고, 서버의 응답은 다 다른 응답을 나타낸다. 같은 내용이더라도 서로 다른 데이터이다. PUT 요청으로 2번 데이터를 수정한다고 치면, 2번 데이터가 없는 경우에는 데이터가 생성될 수 있지만, 이미 존재하면 데이터는 수정이 된다. 계속해서 PUT 요청을 날려도 2번 데이터..
JPA를 사용하고 테스트 코드 작성하는 것을 연습하고 있는데 이런 에러가 떴다..! 에러 로그를 살펴보면 적어도 하나의 jpa metamodel이 필요한 데 없어서 그런것 같다. 이게 무슨 뜻인지 천천히 생각해봤다. 우선 JPA에서는 엔티티들의 생성 및 수정 시간을 자동으로 관리해주는 Auditing 기능이 있다. 나도 이기능을 사용하기 위해 아래와 같은 코드를 작성해둔 상태였다. 이렇게 @EnableJpaAuditing 어노테이션을 테스트들의 가장 기본이 되는 Application 클래스에 등록을 해두면 모든 테스트들이 항상 JPA 관련 Bean들을 필요로 하는 상태가 된다. 즉, @EnableJpaAuditing을 사용하기 위해서는 최소 하나의 @Entity 클래스가 필요하다는 뜻이다. 하지만, 테스..
스프링 시큐리티를 써서 소셜 로그인을 적용하다가 만난 에러이다... 우선 에러 로그를 그대로 번역하자면 아래와 같다. "DefaultSerializer에는 직렬화 가능한 페이로드가 필요하지만 [...] 유형의 개체를 수신했습니다" 우선 직렬화 가능한 페이로드가 필요한 것 같다. [...]에 내가 사용한 dto 폴더를 나타내 주는데 그 dto 파일에서 직렬화를 적용시켜주어야 한다는 의미 같다. 그래서 직렬화에 대해서 또 어떻게 적용할 지 알아보았다. 직렬화란? ■ 자바에서 직렬화란 자바 시스템 내부에서 사용되는 객체 또는 데이터를 외부의 자바 시스템에서도 사용할 수 있도록 바이트 형태로 데이터 변환하는 기술과 바이트로 변환된 데이터를 다시 객체로 변환하는 기술(역직렬화)를 아우른다. ■ 시스템적으로는, J..