전체 글
-
Builder 패턴을 쓰는 이유카테고리 없음 2023. 3. 28. 09:31
Builder 패턴이란 객체를 정의하고 그 객체를 생성할 때 보통 생성자를 통해 객체를 생성한다. 다들 Token token = new Token(); 으로 사용한 경험이 있을 것이다. 하지만 생성자를 통해 객체를 생성하는데 몇 가지 단점이 있어 Builder를 사용한다. 이를 빌더 패턴이라고 한다. Bag bag = Bag.builder() .name("name") .money(1000) .memo("memo") .build(); 객체를 생성할 수 있는 빌더를 builder() 함수를 통해 얻고 거기에 셋팅하고자 하는 값을 셋팅하고 마지막에 build()를 통해 빌더를 작동 시켜 객체를 생성한다. Builder 패턴을 써야하는 이유 빌터 패턴을 써야하는 이유는 크게 두가지 인데, 첫번째는 생성자로 객체..
-
Spring boot에서 header에 정보를 담아 보냈는데 client에서 확인할 수 없을 때카테고리 없음 2023. 3. 16. 09:54
backend에서 분명 header에 정보를 담아서 보냈는데 이를 프론트에서는 확인할 수 없었다. 이유를 찾아보니 cors 에러라고 한다. 원인은 계속 찾아볼 것. https://velog.io/@ojwman/spring-boot-cors-header-preflight SpringBoot에서 CORS할 때 header, preflight 이슈 해결하기 SpringBoot에서 CORS할 때 header 노출시키기 velog.io https://shinsunyoung.tistory.com/86 Spring Boot에서 CORS 적용해보기 안녕하세요! 이번 포스팅에서는 CORS가 무엇인지 간단하게 알아보고, Spring Boot에서 CORS를 적용하는 방법에 대해 알아보겠습니다. 전체 코드는 Github에서 ..
-
회원관리에 Redis 적용하기카테고리 없음 2023. 3. 13. 09:50
- 회원 관련 API 를 만드는 중 Refresh Token을 저장할 때 MariaDB 를 거칠 수도 있지만 빠른 액세스 속도와 휘발성이라는 특징으로 보통 캐시의 용도로 레디스를 사용했다. - 일단 첫번째로 도커에 Redis를 설치했음. 참고 사이트 https://emflant.tistory.com/235 Docker 로 Redis 설치하기 Redis 는 "키-값" 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈소스 기반의 비관계형 데이터베이스 관리 시스템이다. 관심이 생겨 한번 설치를 하려 했는데, docker 로 설치해봤다.(해당 글 emflant.tistory.com - application.properties 파일에 설정값을 넣어줘야 한다. 제일 헷갈리는 부분은 host 값에 무엇을 넣어야 하..
-
[Spring] Filter & InterceptorSpring 2023. 3. 10. 14:41
0. Filter, Interceptor 웹 개발을 하면서 공통으로 처리해야할 작업들이 있다. 특히 지금 구현하고 있는 로그인 관련이 그렇다. 그래서 공통으로 처리해야 할 작업들을 하기 쉽게 나온 방법들인 인터셉터, 필터, AOP에 대해서 정리하려고 한다. 애플리케이션 여러 로직에서 공통으로 관심이 있는 있는 것을 공통 관심사(cross-cutting concern)라고 한다. 이러한 공통 관심사는 스프링의 AOP로도 해결할 수 있지만, 서블릿 필터 또는 스프링 인터셉터로 해결 할 수 있다. 1. Filter(필터) 서블릿 필터는 DispatcherServlet 이전에 실행이 되는데 필터가 동작하도록 지정된 자원의 앞단에서 요청내용을 변경하거나, 여러가지 체크를 수행할 수 있다. 보통 인코딩 처리가 여기..
-
ResponseEntity카테고리 없음 2023. 3. 10. 10:48
ResponseEntity - 스프링 프로젝트를 하다보면 controller 단에서 return 할 때 자주 쓰이는 걸 볼 수 있다. - 크게 3가지로 나뉜다. HttpStatus / HttpHeaders / HttpBody - return 방식은 다양하니 그에 맞게 정보를 잘 담아서 프론트로 보내면 된다. - 프론트로 보내는 방법은 어떤 것이 적절할까 많은 고민이 있었는데 컨설턴트님한테 물어본 결과 회사마다 정해진 규칙에 따라 따르면 된다고 한다. 하지만 대부분 최소한의 정보만 주고 받으면 된다고. 진짜 필요한 핵심 기능만! return ResponseEntity.ok() .headers(headers) .body(responseService.getSingleResult(responseDto)); @R..
-
Mybatis int형 null체크카테고리 없음 2023. 1. 26. 09:00
에러 메인 페이지 검색조건을 만드는 중, Mapper.xml 작성에서 에러 발생. 검색 조건 쿼리를 만들 때, INT 형으로 들어오는 변수의 NULL 체크를 해야하는 상황 아래와 같은 조건문이 실행되지 않음. 원인 숫자는 기본 값이 null 이 아닌 0으로 들어온다. 매우 간단한건데 헷갈리기 쉬움. 해결 아래와 같이 0이 아닌지 확인해줘야함. 매우 간단한 오류이지만 꽤 많은 시간을 보냈음. 이제는 미리 서비스 단계에서 어떻게 담겨서 오는지 확인해보고 그 값의 형태에 따라서 null 체크를 할 것. 좋아요공감 공유하기 통계 게시글 관리
-
Controller와 Service의 차이Spring/MVC 2023. 1. 24. 03:31
여전히 이 부분은 고민이 됨. 뭐가 정확한지는 연휴지나고 물어봐야함. https://okky.kr/articles/284173 OKKY - 스프링 기반 개발에서 controller에서 대해서... 안녕하세요.다름이 아니라 제가 개발에 대한 이해가 부족했던것이 아닌지 해서 글을 올려봅니다.얼마전을 spring 기반에 웹을 개발하고 있는데 제가 이제까지 개발한 방법은controller -> service -> dao okky.kr https://wiselog.tistory.com/169 [Spring MVC] Controller에서 여러 Service 호출? - Service는 단순하게 하나의 트랜잭션을 갖는다고 생각하면 된다. 트랜잭션이란 한 번에 수행되어야 할 일련의 연산들을 말하며, 실행 중에 오류가 ..