반응형 분류 전체보기337 [우테코] 장바구니 미션 1~2 단계 학습 로그 목차 1. GitHub 저장소 2. 요구사항 3. 학습 사항 4. 피드백 5. 셀프 회고 1. GitHub 저장소 🐱💻 1단계 Repository: https://github.com/yeon-06/jwp-shopping-cart/tree/step1 1단계 Pull Request: https://github.com/woowacourse/jwp-shopping-cart/pull/31 2단계 Repository: https://github.com/yeon-06/jwp-shopping-cart/tree/step2 2단계 Pull Request: https://github.com/woowacourse/jwp-shopping-cart/pull/95 2. 요구사항 🚀 1단계 요구사항 회원 관련 CRUD 구현 JWT.. 2022. 6. 14. [Spring] CORS 에러 해결하기 💥 문제의 시작 Access to fetch at 'http://서버IP:8080/signup' from origin 'API호출한IP' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled 프론트와의 협업 미션을 하는 중에 위와 같은 에러.. 2022. 6. 13. WHERE절 IN과 NamedParameterJdbcTemplate IN 절을 쓰다 만난 BadSqlGrammarException Spring은 다양한 종류의 JdbcTemplate을 지원하는데 개인적으로는 NamedParameterJdbcTemplate를 애용하는 편이다. NamedParameterJdbcTemplate에서는 아래 예제처럼 WHERE ~ IN (~)을 편하게 사용할 수 있다. public List findByIds(List productIds) { final String query = "SELECT id, name, price, image_url FROM product WHERE id IN (:productIds)"; SqlParameterSource source = new MapSqlParameterSource("productIds", productI.. 2022. 6. 8. OS 환경 변수로 중요한 설정 정보 숨기기 🤗 서론 중요한 설정 정보들이 담긴 파일은 공개되면 안된다. 이를 숨김 처리 하는 방법은 여러가지가 있다. Vault, AWS에서 지원해주는 Systems Manager Parameter Store 등 여러 서비스를 활용할 수 있다. 또는 properties를 아예 깃허브에 올리지 않고 서버에 직접 수동 배포하는 방법도 있다. 💻 OS에 환경 변수 저장하기 이번에 해볼 것은 OS 환경 변수에 저장하는 방법이다. (방법을 알려준 열음 완전 땡큐❤) 리눅스 환경이라면 아래 명령어를 통해 .bashrc 파일에 접근해 변수를 추가해주면 된다. $ vi ~/.bashrc 파일 하단에 변수를 추가해준다. 아래 예제처럼 export 키워드를 이용하면 된다. export SECRET_KEY='12e21.11fwq2' .. 2022. 6. 8. [Spring 5 프로그래밍 입문] chapter 5, 6 - 컴포넌트 스캔과 빈 라이프 사이클 목차 chapter 5: 컴포넌트 스캔 컴포넌트 스캔 @ComponentScan 컴포넌트 스캔 충돌 처리 chapter 6: 빈 라이프 사이클과 범위 컨테이너의 라이프 사이클 스프링 빈 객체의 라이프 사이클 프로토타입 빈의 라이프 사이클 Chapter 5 - 컴포넌트 스캔 📰 컴포넌트 스캔 : 스프링이 직접 클래스를 검색해 빈으로 등록해주는 기능 @Component로 등록 가능 어노테이션에 값을 주면 빈으로 등록 시 사용할 이름 지정 가능 값이 없을 경우 클래스 이름의 첫 글자를 소문자로 바꾼 이름으로 지정 기본 스캔 대상 @Component @Controller @Service @Repository @Configuration 책에서는 @Aspect도 스캔 대상이라고 되어있는데 이는 오해를 부를 수 있는.. 2022. 6. 4. 로컬에서 간단하게 CORS 에러 확인하기 CORS 에러는 Postman을 통해서 확인할 수 없다. 1. 개발자 도구 들어가기 Chrome -> 개발자 도구(F12) -> Console 2. 서버 API 호출 아래 스크립트를 자신의 API 스펙에 맞게 수정해 1에서 실행 fetch("http://localhost:8080/signup", { method: 'POST', headers: { 'Content-Type': 'application/json;charset=UTF-8' }, body: JSON.stringify({ "account": "leo0842", "nickname": "eden", "password": "Password123!", "address": "에덴동산", "phoneNumber": { "start": "010", "middl.. 2022. 6. 3. [우테코] 지하철 경로 미션 1~2 단계 학습 로그 목차 1. GitHub 저장소 2. 요구사항 3. 피드백 4. 셀프 회고 1. GitHub 저장소 🐱💻 1단계 Repository: https://github.com/yeon-06/atdd-subway-path/tree/step1 1단계 Pull Request: https://github.com/woowacourse/atdd-subway-path/pull/176 2단계 Repository: https://github.com/yeon-06/atdd-subway-path/tree/step2 2단계 Pull Request: https://github.com/woowacourse/atdd-subway-path/pull/258 2. 요구사항 🚀 1단계 요구사항 경로 조회 API 구현 최단 경로 라이브러리 JGr.. 2022. 5. 29. [Spring Boot] 내가 설정하지 않아도 동작하는 어노테이션 😊 서론 특정 어노테이션을 붙여야만 돌아가는 기능들이 있다. (ex: AOP를 사용하기 위해 @EnableAspectJAutoProxy 사용한다 등) 그런데 어노테이션을 달지도 않았는데 정상적으로 동작했다. Spring Boot에서 지원해주는 기능이라 예상하며 @SpringBootApplication 어노테이션을 열어보려고 한다. 결론을 바로 보고 싶은 사람들은 @SpringBootApplication은 생략하고 @EnableAutoConfiguration을 보자. 🚀 @SpringBootApplication main 메서드가 있는 클래스에 적용된 어노테이션이다. 간단히 살펴보자. @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Docume.. 2022. 5. 28. [Spring] @Aspect는 컴포넌트 스캔 대상일까? 많은 기술 블로그들이나 책을 보면 컴포넌트 스캔에 대한 이야기가 나온다. 컴포넌트 스캔은 @Component 어노테이션을 붙인 클래스 뿐 아니라 @Controller, @Service 등이 붙은 클래스도 컴포넌트 스캔 대상에 포함된다. 그런데 @Aspect 어노테이션도 컴포넌트 스캔의 대상이라고 설명한 곳이 많았다. 하지만 @Aspect가 붙은 클래스가 정상적으로 동작하려면 @Component 또는 @Bean 어노테이션을 이용해야 한다. 아래는 내가 작성한 테스트용 코드다. @Repository를 적용한 LineDao 클래스, @Aspect를 적용한 LoggerAop 클래스 두 개를 sout 해봤다. LineDao는 무사히 가져왔지만 LoggerAop에서는 해당 bean을 찾을 수 없다는 오류가 발생한다.. 2022. 5. 25. 이전 1 ··· 10 11 12 13 14 15 16 ··· 38 다음 반응형