@Configuration의 어노테이션은 SingleTon 이다. @Component 와 @Configuration 의 차이부터 알고 시작하자. @Component는 스프링이 가지는 특징인 DI의 특성을 보여주는 어노테이션 일것이다. 이전까지 XML 파일에 개발자가 클래스 혹은 메소드를 Bean으로서 직접 주입해 주었다면 @Component 어노테이션의 등장으로 개발자가 직접 XML파일에 직접 작성하는 과정을 생략할 수 있었다. 스프링2.5 버전에서 추가된 이 버전은 @Controller, @Service, @Repository 어노테이션에 기본 내장되어있어 우리가 위 3가지를 클래스 상단에 추가해주기 때문에 @Component 를 선언 없이도 Bean으로서 사용할 수 있었던 것이다. @Configura..
🚀 JSP(JavaServer Pages) JSP는 HTML내에 자바 코드를 삽입하여 웹 서버에서 동적으로 웹 페이지를 생성하여 웹 브라우저에 돌려주는 서버 사이드 스크립트 언어이다. Java EE 스펙 중 일부로 웹 애플리케이션 서버에서 동작한다. 🚀 Servlet 클라이언트의 요청을 처리하고, 그 결과를 반환하는 Servlet 클래스의 구현 규칙을 지킨 자바 웹 프로그래밍 기술 다시말해, 자바 언어로 구현한 웹 어플리케이션이라는 말인데 이 때문에 JSP와 많이 비교한다. 🚀 Servlet Container (서블릿 컨테이너) Spring Boot 개념이 등장하기 전 웹 어플리케이션으로 톰켓과 같은 웹 애플리케이션을 서블릿 컨테이너라고 부르는데, 이런 웹 애플리케이션(J2EE Application)은 ..
🚀 스프링 시큐리티 스프링 환경은 정책에 따른 여러 Spring-Security가 공존할 수 있어 필터 Filter- Chain에 적용할 경우 충돌 문제가 생긴다. 때문에 Filter- Chain에 Proxy를 구성하여 시스템이 보안 상태를 동적으로 선택할 수 있도록 구성할 수 있다. 🍕 Authentication(인증)의 구조 🍕 CSRF(Cross-Site Request Forgery) CSRF는 웹 애플리케이션의 취약점 중 하나로, 피해자가 의도하지 않는 요청을 통한 공격이다. 🌠 Get 방식 공격 / Post 방식 공격 물론 공격자가 직접 Get요청을 보낼 수는 없다. 공격자의 의도를 실현 하기 위해서는 피해자가 아래와 같은 요청을 보내도록 유도해야한다. 공격 방법으로는 Link/ Image 공격..
🚀 What is Swagger? Swagger를 사용하면 기계가 읽을 수 있도록 API의 구조를 설명할 수 있다. 정리하자면 우리가 별도로 UI를 HTML 파일로 제작하지 않아도 Swegger 에서 필요한 문서 형태를 모두 제공하고 결과값 또한 보여주는 툴이다. Swgger 공식 홈페이지 프로젝트 예시 Spring Cloud 프로젝트에 들어가기전에 API문서를 별도로 만들 필요없이 빠른 개발 할 수 있도록 도와주는 툴을 설정한다. Controller 구현 @Api @RestController public class FileUploadController { @Autowired FileUploadService fileUploadService; @ApiOperation("이미지 파일 업로드") @PostMa..
ORM (Object - Relational - Mapping) 객체와 DB를 매핑하는 기술로 객체와 테이블을 자동으로 매핑해서 패러다임의 불일치 문제를 자동으로 해결해준다. SQL 중심의 매핑이 아닌 자바 클래스 위주의 매핑이다. ####모든 자동 매핑이 ORM은 아니다! 객체와 DB를 자동으로 매핑해준다는 점에서 결국 Mybatis 또한 ORM에 속할지도 모르지만 직접 쿼리를 작성한다는 점에서 SQL 중심의 개발 방식에 가깝기 때문에 ORM 진영에는 반대에 있다고 할 수 있다. 🚀 Hibernate Hibernate는 JPA의 인터페이스를 구현한 구현체이다. JPA와 Hibernate는 마치 자바의 interface와 해당 interface를 구현한 class와 같은 관계이다. 🚀 JPA(Java P..
1. What is IOC ?? IOC(Inversion of Control) 스프링에서 일반적인 Java 객체를 new로 생성하여 개발자가 관리 하는 것이 아닌 Spring Container에 모두 맡긴다. 즉, 개발자에서 -> 프레임워크로 제어의 객체 관리의 권한이 넘어 갔음으로 "제어의 역전" 이라고 한다.\ IOC 개념의 등장 spring의 등장 이전 EJB (Enterprise JavaBeans) 개발자가 생성한 모든 객체는 직접 관리해야했고 로직이 개발의 규모가 커질 수록 코드의 복잡성과 함께 유지보수도 어려움이 커져갔다. spring의 등장 이후는 어땠을까? 새로운 프레임워크 spring은 3대요소를 외치며 등장했다. 개발자가 방대한 객체를 만들고 관리하는 과정이 어려워짐에 따라 본래의 로직..
WebSocket? WebSocket은 웹 상에서 쉽게 소켓 통신을 하게 해주는 라이브러리로 실시간 채팅 서비스, 알림 기능 서비스의 기반이 된다. spring 에서는 SockJS 라이브러리와 메시지 전송을 효율적으로 해주기 위한 STOMP 프로토콜이 존재한다. payload? 페이로드란 전송되는 데이터이며 Header와 MeTA 데이터, 에러 체크 비트 등과 같은 다양한 요소들을 함께 보내 데이터 전송 효율과 안전성을 높인다. 아래와 같은 데이터에서 페이로드는 "data"이며 나머지는 부가적인 정보이다. { "status":"", "from": "localhost", "to": "http://localhost:8080/chatroom/1", "methid": "GET", "data": { "messag..
객체지향 쿼리 JPQL SQL vs JPQL 테이블이 아닌 객체를 대상으로 검색하는 객체지향 쿼리 SQL을 추상화해서 특정 DB SQL에 의존하지 않는다. 구분 SQL JPQL 대상 DATA 객체 쿼리 형태 DATA 중심의 쿼리 객체 중심의 쿼리 JPQL(정적 쿼리) ? JPQL(Java Persistence Query Language)은 객체를 조회하는 객체지향 쿼리이다. 객체 중심의 문법인 만큼 특정 DB에 의존하지 않는다. 엔티티 조회, 묵시적 조인, 다형성 지원으로 SQL 보다 간결하다. 다형성(polymorphism) ? 하나의 객체가 여러 가지 타입을 가질 수 있는 것을 의미합니다. 자바에서는 이러한 다형성을 부모 클래스 타입의 참조 변수로 자식 클래스 타입의 인스턴스를 참조할 수 있도록 하여..
- Total
- Today
- Yesterday
- 스프링부트
- 알고리즘
- interview
- CS
- 수학
- C언어
- 면접
- 그래프
- kakao
- 프로그래머스
- 매트랩
- spring-cloud
- OOP
- nginx
- 스프링
- Solid
- 자격증
- springboot
- java
- Spring
- Matlab
- ajax
- security
- JPA
- 백준
- Algorithm
- docker
- 릿코드
- 자바
- 디자인패턴
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |