🔎느슨한 결합의 필요성을 mario 게임과 supercontra 게임 예시를 통해 알아보자위의 두 게임은 동작방법이 비슷하지만 강한 결합으로 한가지 게임을 실행하면 나머지 게임을 주석 처리 해줘야하는 비효율적인 방식으로 동작 되고 있다( 느슨한 결합의 필요성) 문제점
이렇게 인터페이스를 연결해주고 느슨한 결합을 해주면 게임 코드를 직접 고칠 필요 없이 GamingConsole 코드를 수정해주면 된다.
@Configuration 클래스로 Spring 컨텍스트를 시작Bean에 대한 모든 정의가 있는 설정파일(Spring컨테이너를 만들기 위한 인풋)context.getBean으로 호출한다 SpringContainer 참고할것!
POJO : 일반적인 오래된 Java 객체(모든 Java 객체는 POJO)Java Bean을 만들면 많은 제약이 생긴다기본 생성자가 있어야 한다게터와 세터가 있어야함Serializable 인터페이스를 구현요즘에는 잘 쓰지 않음
Java 객체의 생성 및 관리를 위한 Spring Framework 이해하기🧑🏻🏫 1. @Component로 연결 해 주기 전의 코드 @Bean을 직접 생성해줘야한다 2. GameConsole과 GameRunner와 pacmanGame을 @Compone
Annotaions사용하기 쉽다 특정클래스,메소드, 변수 자체에 소스에 가깝게 어노테이션을 정의할 수 있다스프링프래임워크를 참조하기 때문에 포조가 깔끔하지 못하다유지보수가 쉬움디버그 난이도가 높다XML Configuration사용하기 번거로움. Bean 인스턴스를 만드
제네릭 어노테이션이며 모든 클래스에 적용 가능특정 클래스에 Spring Bean을 생성하려는 경우에 사용모든 스테레오타입 어노테이션의 기초@Component 대시 사용 가능한 어노테이션@Service : 어노테이션한 클래스에 비즈니스 논리가 있음을 나타냄. 비즈니스 논
H2 Database 란? H2 데이터베이스는 자바로 작성된 인메모리 및 디스크 기반의 관계형 데이터베이스 관리 시스템(RDBMS)입니다. H2는 작고 빠르며 오픈 소스이며, 모바일 및 웹 애플리케이션과 같은 경량 환경에서도 잘 작동합니다. H2 데이터베이스의 주요
자바 어플리케이션에서 데이터베이스와 상호 작용하는 기술인 JDBC(Java Database Connectivity)와 JPA(Java Persistence API)에 차이점에 대해 알아보자. 🧑🏻🏫 1. JDBC 쿼리 실행 repository를 autowi
spring-boot-starter-web을 추가하면 로깅은 자동으로 포함된다.spring boot가 사용하는 기본 로깅 프레임워크는 SLF4j를 사용하는 Logback이다. application.propertiesdebug는 너무 많은 로그를 출력해서 성능에 문제를
1.pom.xml 추가 todo.java Validation을 추가 해주고 싶은 필드 위에 @Size 어노테이션을 추가 해 준다 Size 말고도 여러 Validation들을 추가 해 줄 수 있다! controller.java @Valid 어노테이션을 추가해
기본값이 셋팅 돼 있기 때문에 h2데이터 베이스와 연결 했을 때 오류가 난다. All URLs are protectedA login form is shown for unauthorized requests 승인되지 않은 요청에 대해서 로그인 양식 표시 CSRF disab
요청 -> dispatcherServletspring MVC 에서 모든 요청은 디스패처 서블릿이 처리함http://localhost:8080/hello-world/path/variable/sooput : 기존 리소스를 업데이트 할때patch : 기존 리소스의
Optional.get에서 예외가 발생함.조건에 맞는 항목이 없음벨류가 존재하면 값을 리턴하고 아니면 예외를 발생시킨다. .findFirst().orElse(null);결과가 없을경우 화면에 아무것도 뜨지 않는다.UserResource.javaUserNotFoundEx
🧑🏻🏫 SpringSecurityConfiguration를 파헤쳐 보자 Spring Security 아키텍처 사용자의 요청이 서버로 들어옵니다. Authotication Filter가 요청을 가로채고 Authotication Manger로 요청을 위임합니다.
에러 응답 구조 체계적으로 만들기error를 디테일하게 받을 수 있는 dto를 만들어준다ResponseEntityExceptionHandler 클래스를 상속하여 확장해준다. API Tester로 없는 사용자를 검색해서 예외처리가 잘 되었는지 확인업로드중..없는 사용자
delete 메소드 생성controller삭제작업이 완료되면 200반환@DeleteMapping 어노테이션 생성API Tester기존 생성된 사용자의 아이디중 하나인 1을 url에 넣어준다.삭제 완료!
의존성 추가 createUser에 파라미터로 @Valid 추가 여러가지 유효성을 @어노테이션을 통해 적용할 수 있다
REST API는 전세계에 소비자가 있을 수 있다.(다양한 언어)\-이때 국제화 또는 i18n을 사용해야 함영어로 국제화는 18개의 글자로 이루어져있기 때문에 i18n으로 간략히 줄여 쓰기도 한다. 국제화 처리할 때마다 HTTP Request 헤더 사용.(Accept
메소드가 업데이트 되었을 때 메소드를 고치는것보다는 버전으로 관리해주는게 좋음 브레이킹 체인지가 일어날 경우, API 버전 관리가 고려할 수 있는 솔루션 중 하나 URLRequest Parameterheader미디어 유형 버전 관리 \-> 테스트 예시버전 1: 퍼스트
데이터를 반환하는것 뿐만 아니라 링크도 반환 할 수 있음!링크를 반환하여 사용자에게 후속작업을 수행할 수 있는 방법을 알려준다. import static 구문을 사용하면 특정 클래스의 정적 멤버들을 클래스 이름 없이 직접 사용할 수 있음 즉, 위의 코드에서 linkTo
serialization: 객체를 직렬화 함 (Json 또는 xml로 전환하는 것 ) Customize field names in response @JsonProperty Json key값 커스텀마이징 가능 Return only selected fileds 빈에
디자인패턴이란? 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호관계 등을 이용하여 해결할 수 있도록 하나의 '규약' 형태로 만들어 놓은 것. 1. 싱글톤 패턴 : 하나의 클래스에 오직 하나의 인스턴스만 만드는 패턴 데이터베이스 연결 모듈에 많이 사용함 생성
문제1) 분명히 토큰이 발급 되었는데 JWTFilter 단계에서 tokennull이 뜸2) Header에 Authorization을 추가해주었음에도 검증을 못함계속 token null만 뜨다가 A granted authority textual representation