반응형 Develop232 로컬에서 간단하게 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. [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. [Spring 5 프로그래밍 입문] chapter 3, 4 - 의존 주입 목차 chapter 3: 스프링 DI 의존 주입; DI 객체 조립기 Spring과 DI chapter 4: 의존 자동 주입 @Autowired 어노테이션 @Qualifier 어노테이션 @Autowired 어노테이션 필수 여부 정하기 자동 주입 vs 수동 주입 Chapter 3 - 스프링 DI 💥 의존 주입; DI; Dependency Injection 여기서 의미하는 의존은 객체 간의 의존을 의미 의존: 변경에 의해 영향받는 관계 한 클래스가 다른 클래스의 메서드를 실행할 때 이를 의존한다고 표현 example1 - 의존 객체 직접 생성하기 의존 객체 직접 생성 의존 객체인 UserDao를 변경하고 싶은 경우 UserService에서 직접 수정 public class UserService { privat.. 2022. 5. 21. [Spring 5 프로그래밍 입문] chapter 2 - 스프링 시작하기 목차 chapter 2: 스프링 시작하기 빌드와 의존 전이 Spring bean 등록하기 Spring은 객체 컨테이너다? 싱글톤 객체 Chapter 2 - 스프링 시작하기 📚 빌드와 의존 전이 빌드 도구에는 크게 Ant, Maven, Gradle이 있다. 요즘에는 Maven과 Gradle을 많이 사용하는 편이다. 📕 Maven 설정 정보 관리 파일: pom.xml 코드 컴파일/실행 시 로 설정한 아티팩트 파일 사용 로컬 레포지토리에 .jar 파일이 존재하면 해당 파일 사용 로컬 레포지토리에 존재하지 않으면 메이븐 원격 중앙 레포지토리에서 다운받음 의존 전이; Transitive Dependencies 를 통해 아티팩트 파일을 다운 받을 때, 해당 아티팩트가 의존하는 아티팩트까지 다운로드 한다. 의존하는 .. 2022. 5. 21. [Java] Duplicate key XXX 에러 java.lang.IllegalStateException: Duplicate key 'key로 저장하려는 값' (attempted merging values ~~) ❓ 에러 원인 Collectors.toMap() 호출 시 중복되는 key 값이 존재 💡 해결 방법 해결 방법은 크게 2가지가 있다. key가 중복되지 않는 데이터 사용 toMap(Function, Function) 대신 toMap(Function, Function, BinaryOperatior) 사용 👀 더 자세히 살펴보기 위와 같은 에러가 발생하는 예제 코드를 만들어봤다. name을 key로, User 객체 자체를 value로 넣으려고 한다. 헌데 name이 동일한 데이터가 2개 존재한다. key만 동일한 데이터가 존재하는 경우 @Test .. 2022. 5. 18. [Java] 파라미터를 Optional로 받지 말자 'Optional' used as type for parameter '파라미터명' 경고 어쩌다보니 Optional 파라미터를 받는 메서드를 만들게 되었다. 노란줄이 쳐지며 경고가 떴다. 대체 왜? 🤔 private void test(Optional id) { // ... } 😭 1. 메서드에 조건부 로직을 유도한다. Optional 값을 바로 get()해서 사용하는 경우 노란 줄로 경고가 뜬다. null인지 체크하지 않고 바로 사용해서 뜨는 경고다. 'Optional.get()' without 'isPresent()' check 따라서 메서드 내부에 해당 Optional에 null값이 확인하는 로직인 'isPresent()'를 반드시 호출해야한다. isPresent가 true인 경우와 false인 경우를.. 2022. 5. 12. [Spring] Spring의 트랜잭션 관리 (feat: @Transactional) 📑 목차 트랜잭션이란? 트랜잭션 예제 트랜잭션 ACID 트랜잭션 관리의 종류 비즈니스 로직과 트랜잭션 코드의 분리 선언적 트랜잭션 관리 vs 프로그래밍적 트랜잭션 관리 @Transactional이란? AOP @Transactional 예제 @Transactional의 동작 원리 테스트와 @Transactional 😮 트랜잭션이란? : DB 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들 📚 트랜잭션 예제 온라인 쇼핑몰에서 결제할 때를 생각해보자. 연로그는 친구의 생일을 앞두고 생일 선물을 사려고 한다. 선물을 골라 결제할 때 총 2가지 작업이 이루어진다. 판매처에 돈 보내기 판매처에서 돈 받기 1만 성공하거나 2만 성공하는 경우가 발생해서.. 2022. 5. 8. [Spring] @RequestBody가 빈 생성자가 필요한 이유 (hint. ObjectMapper) com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `클래스명` (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator) 에러 Spring에서 @RequestBody를 통해 데이터를 가져오는 중에 위와 같은 에러를 만났다. 구글링을 해보니 하나같이 빈 생성자를 생성하라고 하는데 대체 왜? 라는 생각이 들었다. Spring은 Http Message Body를 읽기 위해 HttpMessageConverter를 사용한다. 클라이언트로.. 2022. 5. 1. 이전 1 ··· 6 7 8 9 10 11 12 ··· 26 다음 반응형