일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- java
- gatway
- 스레드 풀
- 자료구조
- Kafka
- 자바
- null
- well-know port
- Kotlin
- 페이지네이션
- 삽입 이상
- 갱신 이상
- 낙관적 락
- Dirty Checking
- Redis
- 3-way handshaking
- 삭제 이상
- 캐시 오염
- DB
- HTTP
- AWS
- Spring
- 네트워크
- 정규화
- buildSrc
- MSA
- 비관적 락
- 데이터베이스
- ocp
- JPA
- Today
- Total
728x90
목록
728x90
분류 전체보기 (70)
어 나 갱수.
프로젝트를 하면서 캐싱 기능을 추가해 보기로 했습니다. Spring에서는 @Cacheable, @CachePut, @CacheEvict 어노테이션을 통해서 캐시를 구현할 수 있습니다. Spring에서 캐시를 사용하려면 캐싱 기능을 사용할 스프링부트 애플리케이션에@EnableCaching이라는 어노테이션을 붙여준다. 이 어노테이션을 붙여주면 이제 해당 애플리케이션에서 캐싱 기능을 활성화시켜서 캐시를 통해 데이터를 불러올 수 있습니다.@SpringBootApplication@EnableCachingclass V2Application{ val log = LoggerFactory.getLogger(this::class.java.name)!! @PostConstruct fun timeZone() { TimeZo..
동시성(Concurrency)동시성은 여러 작업이 시간을 나누어 사용하여 마치 동시에 실행되는 것처럼 보이게 하는 기술입니다. 동시에 실행하는 것이 아니라 CPU가 작업마다 시간을 분할해 적절하게 컨텍스트 스위칭을 해서 동시에 실행되는 것처럼 보이게 합니다.동시성의 가장 중요한 목표는 효율을 좋게 하기 위함이 있습니다. 병렬성(Parallelism)병렬성은 동시성처럼 여러 작업이 동시에 이루어지는 것 처럼 보이게 하는 것이 아니라 실제로 여러 개의 작업들을 동시에 처리하는 것을 말합니다. 병렬성은 멀티코어 컴퓨터에서 많이 사용되며, 실행 시간을 줄이거나 처리량을 늘리는 데에 사용된다.병렬성을 통해, 대규모 데이터 처리나 복잡한 계산 작업을 빠르게 처리할 수 있습니다. 차이점동시성과 병렬성의 가장 큰 차..
Cache란많은 시간이나 연산이 필요한 일에 대한 결과를 저장해 두는 것한번 읽은 데이터를 임시 저장, 필요에 따라 전송, 갱신, 삭제하는 기술임시로 저장해 두고 같은 데이터를 불러올 때 빠르게 불러옴Cache의 문제점캐시를 사용하게 된다면 데이터 정합성 문제가 발생할 수 있습니다.데이터 정합성문제란 간단하게 말하면 캐시에 있는 데이터의 값과 데이터베이스에 있는 데이터의 값이 다른다는 것을 의미합니다.캐시를 사용하지 않았을 때는 그냥 데이터베이스에서 값을 가져오면 되기 때문에 정합성 문제가 발생하지 않았지만 캐시에 데이터가 있다면 캐시에서 데이터를 가져오기 때문에 캐시와 데이터베이스에 값이 다르다면 데이터 정합성 문제가 발생할 수 있습니다.Cache 전략캐싱 전략은 웹 서비스 환경에서 시스템 성능 향상을..
오늘은 클린 아키텍처에 대해 알아보겠습니다. 평소에 듣기로는 "유지보수에 편리한 아키텍처", "테스트하기 편리한 아키텍처" 정도로만 알고 있습니다. 오늘은 좀 더 자세히 알아보겠습니다. Clean Architecture'추상화 개념'으로써 관심사를 분리시키고 의존도를 낮추는 것에 목적을 둔 아키텍처입니다. 클린 아키텍처는 각 요소들을 분리하고 변화에 유연하게 대처할 수 있는 아키텍처 설계입니다.클린 아키텍처를 적용함으로써 개발자는 비즈니스 로직과 외부 요인과의 결함도를 낮춤으로써, 테스트에 편리하고 유지보수에 효율적인아키텍처를 구축할 수 있습니다. 이 요인은 장기적으로 봤을 때 애플리케이션의 유지보수 비용을 줄임과 동시에, 품질을 향상할 수 있습니다. 사용하는 이유소스코드를 변경할 때 안정성이 높아집니다..
IP(Internet Protocol)웹 서버가 다른 컴퓨터에서 실행되고 있기 때문에, 웹 브라우저가 웹 서버에 연결하려면, 웹 서버가 실행 중인 컴퓨터의 주소를 알아야 하는데 이 주소를 IP주소로 합니다. 이러한 IP주소는 형식을 외우거나 구별하기 어렵기 때문에, DNS를 통해 구별하기 쉬운 도메인 주소로 변환된다.도메인주소로 웹 브라우저에 접속할 때도 DNS를 통해 IP주소를 알아내고 통신을 이어갑니다. Port포트는 “논리적인 접속장소”를 뜻하며, 인터넷 프로토콜인 TCP/IP를 사용할 때 클라이언트 프로그램이 네트워크 상의 특정 서버 프로그램을 지정하는 방법으로 사용한다.네트워크 상에서 통신을 할 때 IP 주소를 바탕으로 해당 서버가 있는 컴퓨터에 접근하게 된다. IP 주소가 건물 주소라면 포트 ..
AOPAOP에 대해 먼저 알아보자면 관전 지향 프로그래밍이라는 뜻으로, 코드를 핵심 기능과 공통 기능으로 나눈 후에 핵심 기능에서 따로 빼놓은 공통 기능을 불러와 적용하는 방법입니다.로깅 작업프로젝트를 하면서 로그를 찍는 거는 아주 중요한 역할입니다. 로그는 에러가 난 이유를 찾거나 값을 확인하는데 중요한 역할을 합니다.위의 코드와 같이 Controller 코드에 로그를 추가할 수 있습니다. 하지만 위와 같이 Controller method마다 로그를 찍으면 문제가 생깁니다.중복된 코드 증가(모든 controller 메서드에 로그를 추가해야 한다.)실수로 로그를 찍지 않으면 로그가 찍히지 않는다.그래서 위와 같은 상황에서 좀 더 효율적으로 하려면 핵심기능(회원가입)과 공통기능(로깅 작업)을 분리해서 작업..
스프링 기반의 프로젝트에서는 코틀린을 사용해도 기존의 프레임워크인 JUnit, Assertion, Mockito를 동일하게 사용할 수 있지만, Kotlin환경에서는 Kotlin 스럽게 테스트코드를 짤 수 있도록 돕는 도구들이 존재합니다. (MockK, Kotest) 오늘은 MockK과 Kotest를 활용해 SpringBoot에서 단위테스트를 작성하는 방법을 알아보겠습니다. MockKMockK은 코틀린을 위한 모킹라이브러리입니다.Mock, 가짜 객체를 만들어 단위테스트를 하던 Mockito에서 코틀린 스타일로 만들어진 것이라고 생각하면 됩니다.Mockito에서 지원하는 모든 기능에 몇몇 추가 기능을 더한, Kotlin을 위한 모킹 프레임워크입니다.Coroutine 지원도 되고, Object도 모킹 가능하고..
문제 배경msa 프로젝트를 진행하면서 Spring Cloud API Gateway를 통해 /member/signup 요청을 보내려고 했으나 아래와 같은 에러가 발생하였습니다.Spring Cloud Gateway를 사용하여 마이크로서비스 간의 요청 경로를 설정할 때, /member/signup으로 POST 요청을 보냈으나, 예상과 달리 404 NOT_FOUND "No static resource signup." 오류가 발생했습니다. 이는 요청이 user-sevice의 signUp 메소드로 제대로 라우팅되지 않았음을 의미합니다. 문제 분석문제의 원인은 Spring Cloud Gateway에서 application.yml의 RewritePath 필터 설정에 있었습니다. 처음에 application.yml의 설..