
DI는 스프링 프레임워크의 핵심 개념으로 소프트웨어 컴포넌트 간의 결합도를 줄이고 유연성을 향상시키는 데 중요한 역할을 한다. 스프링이 제공하는 DI 기능은 개발자가 객체 간의 의존성으로 명시적으로 정의하여 코드의 유지보수성과 테스트 용이성을 향상시키는 데 도움이 된다. Java Code 기반 설정 (JavaConfig) // Java Code 기반 DI 설정 기본 예제 @Congifuration public class SpringConfig { // (1) @Bean public Poem sonnet29() { return new Poem(); } // (2) @Bean(name="duke") public PoeticJuggler juggler() { return new PoeticJuggler(5, ..
GET // 매개변수 없는 GET 메서드 @GetMapping("/members") public String list() { return "members/memberList"; } // 매개변수 있는 GET 메서드 @GetMapping("/members/{variable}") public String list(@PathVariable String variable) { return variable; } // 매개변수 있는 GET 메서드 @GetMapping("/members") public String list(@RequestParam String variable) { return variable; } @GetMapping: HTTP GET 요청을 해당 메소드에 매핑하는 역할 @PathVariable: U..

도메인: 비즈니스 도메인 객체 리포지토리: 데이터베이스 접근, 도메인 객체를 DB에 저장하고 관리 서비스: 비지니스 로직 구현 Domain package hello.hellospring.domain; import jakarta.persistence.*; @Entity public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void..

정적 컨텐츠 클라이언트의 요청을 받고 서버에 미리 저장된 HTML, CSS, JS 등의 파일을 그대로 보여준다. 스프링부트 서버는 요청이 들어오면 (1)controller 다음으로 (2)resources를 찾는다. MVC와 템플릿 엔진 웹브라우저에서 요청이 들어올 경우 Controller에서 지정된 응답을 한다. 요청에 해당되는 파일을 'viewResolver'를 통해 동작시킨다. 템플릿 엔진은 API 방식과다르게 html 파일을 직접 응답하는 방식이다. 이때 thymeleaf는 템플릿 엔진 중 하나로, MVC중 View에 해당되는 기술이다. 페이지에 동적을 값을 추가하거나 처리한다. API html파일이 아닌 데이터(json)로 응답한다. 아래와 같이 'return 객체'의 형식의 경우 객체를 json..
인터셉터란? Spring이 제공하는 기술로 디스패처 서블릿이 컨트롤러를 호출하기 전과 후에 요청과 응답을 참조하거나 가공할 수 있는 기능 제공 메소드 preHandle() : 컨트롤러가 호출되기 전에 실행 postHandle() : 컨트롤러 호출 후에 실행 afterCompletion() : 모든 작업이 완료된 후에 실행 ChannelInterceptor Interface for interceptors that are able to view and/or modify the Messages being sent-to and/or received-from a MessageChannel. 메세지 채널로부터 전송되거나 수신된 메세지를 볼 수 있고 또는 수정할 수 있는 인터셉터를 위한 인터페이스 일반적으로 전송 및..
JUnit 자바 언어에서 사용되는 대표적인 테스트 프레임워크로서 단위 테스트를 위한 도구를 제공 어노테이션 기반의 테스트 방식 지원 단정문(assert)을 통해 테스트 케이스의 기댓값이 정상적으로 도출됐는지 검토 가능 세부 모듈 JUnit Platform: JVM에서 테스트를 시작하기 위한 뼈대로 테스트 발견과 수행, 결과 보고 역할 수행 JUnit Jupiter: JUnit 5에서 제공하는 Jupiter 기반의 테스트를 실행하기 위한 테스트 엔진을 가지고 있음 JUnit Vintage: JUnit 3,4에 대한 테스트 엔진 API 테스트 생명주기 @Test: 테스트 코드를 포함한 메서드 정의 @BeforeAll: 테스트를 시작하기 전에 호출되는 메서드 정의 @BeforeEach: 각 테스트 메서드가 실..

Dto는 Controller, View, Model 등에서 사용되는 클래스이고, Entity는 말 그대로 엔티티, 즉 DB에 더 가깝게 쓰이는 클래스이다. 실제 DB에 저장될 때는 Entity 클래스가 사용된다고 이해하고 있다. 해당 코드는 사용자가 보낸 채팅을 저장하는 서비스 로직이다. 그래서 혼란스러운 지점이 무엇인가하면... 받아온 chatRoomId를 통해 chatRoomEntity를 찾는다. 그리고 해당 엔티티를 chatMessageRequestDto에 set 해준다. 어라랏? set하는 부분에서 혼란스러웠던건데... 갑자기 이해가 확 됐다. 해당 코드는 아래의 블로그를 참고하여 작성하였습니다. https://velog.io/@sihoon_cho/2.SpringBoot-WebSocket-STOM..

이전에 Config 파일과, Handler 파일을 작성해서 웹소켓 사용 설정을 마쳤다. https://dogandbird.tistory.com/93 이제 본격적으로 웹소켓을 사용해 채팅 구현을 하려고 하는데 STOMP에 대해서 알게 되었다. Websocket만 이용할 경우는 발신자와 수신자에 대한 연결 정보를 직접 관리해야 한다. 또한 사용자들을 해두고 클라이언트에서 다른 클라이언트로 전달하는 코드 또한 직접 구현해야 한다. 하지만 STOMP를 이용한다면 위와 같은 복잡성을 해결할 수 있다. STOMP STOMP는 Simple Text Oriented Messaging Protocol의 약자로 기존 WebSocket 통신 방식을 좀 더 효율적으로 쉽게 다룰 수 있게 해주는 프로토콜이다. STOMP는 Pu..
- Total
- Today
- Yesterday
- BFS
- 컴과
- 백준
- 코틀린
- 자바
- 리트코드 1768
- 백준 2108
- 리트코드 1768 해석
- 자바 1004번
- 안드로이드
- 웹
- 개발
- 컴퓨터학과
- RDD
- 아이엘츠
- 백준9375번
- 스파크
- 자바 9375
- 그리디 알고리즘
- 컴공
- 백준 1004
- 스프링 강의
- 동덕여대 컴퓨터학과
- 코딩
- 프로그래밍
- bcrypaswordencoder
- 생활코딩
- 스프링부트
- 동덕여대
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |