| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- LV.02
- 일정관리 프로젝트
- jvm
- Kafka
- Redis
- CoffiesVol.02
- 데이터 베이스
- LV0
- LV02
- docker
- 디자인 패턴
- 알고리즘
- CI/CD
- 포트폴리오
- 이것이 자바다
- S3
- Java
- SQL
- 프로그래머스
- 코테
- 일정관리프로젝트
- Lv.0
- LV03
- 연습문제
- GIT
- spring boot
- LV01
- mysql
- Join
- JPA
- Today
- Total
목록전체 글 (205)
코드 저장소.
목차?1.데코레이트 패턴?2.데코레이트 패턴 장단점3.데코레이트 구현 1.데코레이트 패턴?데코레이트 패턴은 객체의 기능을 동적으로 추가하거나 확장할 수 있는 구조적 디자인 패턴입니다. 이 패턴은 상속 대신 객체 조합을 활용하여 기능을 확장하는 방식으로, 더 유연하고 유지보수성이 높은 코드를 작성할 수 있게 합니다.2.데코레이트 패턴 장단점데코레이트 패턴의 장단점은 다음과 같습니다. 장점유연한 기능 확장:상속 대신 객체 조합을 통해 기능을 동적으로 추가하거나 제거할 수 있어, 매우 유연하게 기능을 확장할 수 있습니다.런타임에 객체의 행동을 변경할 수 있어, 다양한 요구사항을 쉽게 반영할 수 있습니다.단일 책임 원칙 준수:각 클래스가 하나의 책임만 가지게 되므로, 클래스의 책임이 명확해지고 유지보수가 용이해..
목차1.브릿지 패턴?2.브릿지 패턴의 장단점3.브릿지 패턴 구현 1.브릿지 패턴?브리지 패턴(Bridge Pattern)은 객체 지향 디자인 패턴 중 하나로, 구현(Implementation)과 추상화(Abstraction)를 분리하여 서로 독립적으로 변경할 수 있도록 하는 패턴입니다. 이 패턴의 주된 목적은 추상화와 구현을 분리하여 독립적으로 확장할 수 있도록 하는 것입니다. 이로써 코드를 더 유연하고 확장 가능하게 만들며, 변경에 대한 영향을 최소화할 수 있습니다.2.브릿지 패턴의 장단점브릿지 패턴의 장단점은 다음과 같습니다.장점독립적인 확장성: 추상화와 구현이 독립적으로 확장될 수 있습니다.변경 용이성: 구현체가 변경되더라도 추상화에 영향을 주지 않으므로 변경이 용이합니다.유연성: 런타임 시에 구현..
목차1.SSE?2.프로젝트에 적용 1.SSE?SSE 는 Server Sent Events 로 서버에서 클라이언트로 실시간 데이터를 비동기적으로 전송하는 웹 애플리케이션 통신 기술 중 하나입니다. SSE의 특징으로는 다음 몇가지로 볼 수 있습니다.단방향 통신: 클라이언트는 서버에게 요청을 보내고, 서버는 클라이언트에게 데이터를 주기적으로 보냅니다. 이는 HTTP 기반의 통신 프로토콜을 사용하며, 클라이언트에서 서버로의 요청만 있고, 서버에서 클라이언트로의 응답만 있습니다.폴링 대신 이벤트 기반: 일반적인 웹 애플리케이션에서는 폴링(Polling)이나 웹소켓(WebSockets)과 같은 방법을 사용하여 실시간 데이터를 처리합니다. 하지만 SSE는 클라이언트가 서버에게 한 번 연결되면, 서버는 필요할 때마다 ..
목차1.문제 상황2.AOP?3.프로젝트에 적용4.AOP의 주의점 1.문제 상황 블로그 프로젝트에서 모든 페이지에 사이드바가 적용이 되는데 로그인과 회원가입 페이지를 제외하면 7페이지이고 이 페이지마다 컨트롤러에서 쿼리를 모델에 담아야 하는데 이렇게 되면 단순반복이고 코드가 길어지는 상황이어서 AOP를 사용해서 코드의 양을 줄이고 좀 더 간결하게 코드를 리팩토링을 해야 되는 상황입니다.2.AOP?AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이다. 여기에서 관점지향은 어떤 로직을 기준으로 해서 핵심적인 관점,부가적인 관점으로 나누어서 보고 그 관점을 기준으로 해서 하나의 단위로 묶는 것을 말한다.대표적으로는 로깅,유효성 검사,파일 입출력 등이 있다.3.프로젝트에 적..
목차1.문제상황 2.동시성 이슈?3.비관적 락 VS 낙관적 락 4.프로젝트 적용1.문제상황 프로젝트를 진행하면서 게시글 조회수 증가기능을 확인해보는 도중에 포스트맨으로 동시요청을 해보았는데 조회수의 결과가 원하는 만큼 증가하지 않는 문제가 발생을 해서 무슨 문제인지를 검색해 보았더니 동시성이슈에 관련된 문제임을 알았고 앞으로도 필요한 문제이기에 이 문제를 해결해 보기로 했다.2.동시성 이슈?동시성이라는것은 두개 이상의 세션이 공통된 자원에 대해서 읽고 쓰는 작업을 할 때 발생하는 문제를 동시성 이슈라고 합니다. 3.비관적 락 VS 낙관적 락데이터베이스는 여러 사용자들이 같은 데이터를 동시에 접근 상황에서, 데이터의 무결성, 일관성을 지키기 위해 LOCK을 사용한다. Lock은 트랜잭션의 순차성을 보장하며..
목차1.QueryDSL? 2.JPQL과의 차이점?3.프로젝트의 적용 1.QueryDSL?QueryDSL은 자바 기반의 동적 쿼리를 작성하는 데 사용되는 라이브러리입니다. 주로 JPA(Java Persistence API)와 함께 사용되며, 데이터베이스에 대한 쿼리를 자바 코드로 작성할 수 있도록 도와주는 라이브러리 입니다. 2.JPQL과의 차이점?QueryDSL과 JPQL(JPA Query Language)은 둘 다 자바 표준인 JPA(Java Persistence API)를 사용하여 데이터베이스 쿼리를 작성하는 데에 사용되는 라이브러리입니다. 하지만 두 라이브러리 간에는 몇 가지 차이가 있습니다. 2-1.문법 및 표현 방법JPQL: 문자열 기반의 쿼리 언어로, SQL과 유사하지만 엔터티와 필드를 대상으..