일반적으로 컨트롤러에는 별도의 로직이 없다. 서비스를 부르는 게 그냥 단순함. 스프링은 컨테이너다. @Conponent 는 스프링 보고, "이 객체를 관리해줘" 라고 말하는 것이다. 객체는 일반적으로 new 붙이고 사용하는데, 여기서는 그냥 쓰고 있다. private final SetHttpHeaders httpHeaders; 이게 스프링의 역할. 스프링이 객체를 만들어서 넣어줬어. setHeaderTypeJson() 이걸 매번 쓰고 있으니까 아예 클래스로까지 빼서 이것만 사용하게 만들 수 있도록 해 둔 것 같다. 이걸 클래스에서 객체로 만들지 않고 그냥 static으로 만들면 어디서든 쓸 수 있으니까, static으로 리펙토링 하는 것을 고려해보도록. UserDetails는 사용자 정보 관련 시큐리티다..

예외처리 관련 프로그램 실행 중 예기치 못한 사건을 예외라고 한다. 예외 상황을 미리 예측하고 처리하는 것을 예외처리라고 한다. 기본적으로 런타임 시점에서 발생하는 오류는 에러(error)와 예외(exception)으로 나뉜다. 에러(Error) : 메모리 부족(OutOfMemoryError)이나 스택오버플로우(StackOverflowError)와 같이 일단 발생하면 복구할 수 없는 심각한 오류 예외(exception) : 인자값 Null 에러NPE(NullPointException)같은 발생하더라도 수습이 가능한 덜 심각한 오류. 실행 예외 (RuntimeException) Runtime Error: 프로그램 실행 시점에서 발생하는 에러로 컴파일러는 컴파일 시점에서 문법 오류나 오타같은 컴파일시점에서 ..
_03_Throw package prac18; //의도적 에러 만들어서 던지기 public class _03_Throw { public static void main(String[] args) { int age = 17; // 만 17세 try { if(age < 19) { // System.out.println("만 19세 미만에게는 판매하지 않아요."); // 일부러 애러 발생시키기 : throw throw new Exception("만 19세 미만에게는 판매하지 않아요."); } else { System.out.println("주문하신 상품 여기 있습니다. "); } } catch (Exception e){ e.printStackTrace(); } } } _04_Finally package prac..

답안 package prac18; // 손님 이름 및 나이 정보를 위한 Customer 클래스 생성 // 입장료는 1인당 5천원 // 20세 이상에게만 부과 나머진 무료 // 힌트: map()을 이용하여 원하는 형태로 데이터 가공을 할 수 있음. // 삼항연산자 활용 // 메리 50 // 나나 42 // 벤자민 21 // 코코 18 // 마이클 5 // 미술관 입장료 // ----------- // 메리 50 5000원 // 나나 42 5000원 // 벤자민 21 5000원 // 코코 18 무료 // 마이클 5 무료 import java.util.ArrayList; public class Quiz_Prac17 { public static void main(String[] args) { ArrayList ..
후발대수업_19. 예외처리2 (Throw, Finally, TryWithResources, CustomException, Throws) 진행 내용 (수업자료) 실습코드 Stream 퀴즈풀이 package com.sparta.hbd04.prac01.prac15; // 메리 50 // 나나 42 // 벤자민 21 // 코코 18 // 마이클 5 import java.util.ArrayList; // 미술관 입장료 // ----------- // 메리 50 5000원 // 나나 42 5000원 // 벤자민 21 5000원 // 코코 18 무료 // 마이클 5 무료 public class Prac15 { public static void main(String[] args) { ArrayList list = ne..
1. Docker 설치: Docker는 컨테이너를 사용하여 애플리케이션을 실행하는 데 사용됩니다. Docker를 설치하려면 https://docs.docker.com/get-docker/ 사이트를 방문하여 설치 지침을 따르면 됩니다. 2. Redis Docker 이미지 다운로드: Redis 이미지를 다운로드하여 Docker에서 실행할 수 있습니다. 다음 명령어를 사용하여 Redis Docker 이미지를 다운로드합니다. docker pull redis 3. Spring Boot 프로젝트 생성: Spring Boot 애플리케이션을 만들려면 IntelliJ에서 Gradle 프로젝트를 생성해야 합니다. IntelliJ를 열고 File > New > Project를 선택합니다. 그런 다음 Gradle을 선택하고 ..
1. 스프링 프레임워크는 어떤 특징 혹은 장점을 가지고 있나요? (3가지 이상) 1. 객체지향 프로그래밍 (OOP) 에 기반 1. 서버 개발 시 크게 3계층으로 나누어 구현 가능 (Controller, Service, Repository) 2. 클래스 1개를 선언하여 재사용 가능 3. 모듈화가 잘 되어 있어, 필요한 모듈들만 레고처럼 조립하여 사용 가능 ex) 스프링 시큐리티, 스프링 타임리프 등 2. DI (의존성 주입) 지원 1. DI 통해 강한결합의 문제점을 해결 3. 비즈니스 로직에 집중하게 해 줌 1. 웹 서버에서는 비즈니스 로직이 가장 중요한 구현 부분 2. 비즈니스 로직 외에 다른 부분은 스프링 프레임워크가 쉽게 구현 가능하도록 도움을 줌 1. Client 와의 communication 역할..

회원가입 통과 로그인 통과 비밀번호 수정은 검증 로직이 이상하다. 검증 로직만 주석처리 하고 다시 해보니까 통과 되더라고. 지역 수정 통과 프로필 ID는 별도의 엔티티가 아닌 User 안에 임베더블이라서 따로 없다. 그래서 별도의 Ip로 봐주기는 무리, 테스트 불가 Product Api 명세와는 다르게 place는 따로 없어. 어쨌든 상품 등록 통과 단일 상품 조회도 통과 전체 상품 조회 - PagingProductResponseDto가 JSON으로 변환이 될 때, 값이 없다고 나온다. - 아마 페이징 관련해서 문제가 있는 듯(매핑) 상품 업데이트 - 상품 수정이나 삭제를 하려면 사용자 본인 인증을 해야 하는데, 사용자 본인 인증을 하려면 User 엔티티가 equals가 구현이 되어야 하고, 현재는 eq..