일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 비관적 락
- 삭제 이상
- Kotlin
- 정규화
- Redis
- DB
- 페이지네이션
- null
- 낙관적 락
- AWS
- 자료구조
- java
- 네트워크
- 자바
- 갱신 이상
- JPA
- Spring
- 데이터베이스
- 3-way handshaking
- 캐시 오염
- HTTP
- gatway
- Kafka
- 삽입 이상
- Dirty Checking
- ocp
- well-know port
- 스레드 풀
- buildSrc
- MSA
- Today
- Total
728x90
목록
728x90
분류 전체보기 (70)
어 나 갱수.
springboot와 kotlin을 사용해서 멀티모듈세팅을 하면서 의존성을 어떻게 관리해야 하는지에 대한 고민이 생겼고 buildSrc모듈을 사용해서 의존성관리와 버전관리를 해보자는 생각이 들었다. 이 글에서는 gradle의 buildSrc에 대해 알아보는 시간을 가져보겠습니다. buildSrc란? 라이브러리 버전관리를 좀 더 편리하게 하기 위해 buildSrc를 활용할 수 있다. 왜 사용하지? buildSrc를 이용하면 build script를 더 쉽게 유지보수하고 가독성을 향상시킬 수 있습니다. dependencies { /* kotlin */ implementation(Dependencies.KOTLIN_JDK) implementation(Dependencies.KOTLIN_REFLECT) /* l..
Amazon Elastic Container Registry의 약자로, 안전하고 확장 가능한 신뢰성 있는 AWS 관리형 컨테이너이다. AWS IAM 기반으로 특정 사용자만 이미지에 접근 가능하게 제어하는 프라이빗 레포지터리를 지원한다. 퍼블릭 레포지터리로 사용할 수 있다. 이 글에서 ECR이 무엇인지 가장 기본적인 내용만 간단히 정리해보려고 한다. 특징 1. OCI(Open Container Intiative) 표준 및 Docker Registry HTTP API V2 지원 - Docker CLI 명령을 통해 ECR을 사용할 수 있다. 2. 컨테이너 이미지 및 아티팩트를 Amazon S3에 저장한다. - S3는 버킷에 저장된 객체를 복사본으로 자동으로 생성하고 저장하여 높은 생산석을 제공한다. 3. 접근..
자바와 코틀린을 비교했을 때 장점 하나를 꼽아보라면 빠지지 않고 나오는 것이 null처리에 관한 내용이다. 자바에서는 주로 if와 &&, || 등의 연산자들을 통해 null이 아닌 경우에 처리할 로직을 작성했다. 이에 비에서 코틀린에서는 null를 아주 간단하게 처리할 수 있다. 코틀린은 null이 될 수 있는 타입을 지원해 NullPointException 오류를 컴파일 시점에 감지할 수 있습니다. 자바에서는 null 체크를 할때 주로 if문이나 equals 구문을 사용했지만, 코틀린에서는 Nullable 연산자로 좀더 쉽게 null 체크가 가능합니다. Nullable types 선언 Null 객체를 선언할 때 변수 타입 옆에? 를 붙이면 Null 사용이 가능하도록 할당할 수 있고,? 가 붙지 않으면 ..
웹 애플리케이션을 개발하고 클라이언트와 서버가 통신하는 과정에서는 항상 CORS 이슈를 마주하게 된다. 나도 처음에 웹 통신을 하면서 CORS 문제가 터졌을 때 CORS가 뭔지도 모르고 어떻게 해결할지 잘 몰랐다. 사실 지금도 잘 모른다...ㅋㅋㅋ 이번 기회에 CORS가 무엇인지 조금 깊이 있게 공부해보겠다..!! 출처란? URL 구조 출처가 무엇인지 알아보기 위해서는 URL의 구조를 살펴보아야 한다. 포트 번호가 생략된 이유는 http, https 프로토콜의 포트번호는 정해져 있기 때문이다. http는 80번, https는 443번 포트가 디폴트 값이다. 출처(Origin) 이때 출처는 Protocol, Host, 포트번호를 의미한다. 즉 서버의 위치를 찾아가기 위해 필요한 가장 기본적인 것들을 합쳐놓..
Web Server와 WAS의 차이점은 무엇일까? 서버 개발에 있어서 기초적인 개념이다. 먼저, 정적 페이지와 동적 페이지를 알아보자 Static Pages 바뀌지 않는 페이지 웹 서버는 파일 경로를 받고, 경로와 일치하는 file contents를 반환한다. 항상 동일한 페이지를 반환한다. Dynamic Pages 인자에 따라 바뀌는 페이지 인자의 내용에 따라 동적인 contents를 반환함 웹 서버에 의해 실행되는 프로그램을 통해 만들어진 결과물임 (Servlet : was 위에서 돌아가는 자바 프로그램) Web Server와 WAS의 차이 Web Server 개념에 있어서 하드웨어와 소프트웨어로 구분된다. 하드웨어 : Web Server가 설치되어 있는 컴퓨터 소프트웨어 : 웹 브라우저 클라이언트..
디스패처 서블릿(Dispatcher Servlet) 디스패처 서블릿의 dispatch는 "보내다"라는 뜻을 가지고 있습니다. HTTP프로토콜로 들어오는 모든 요청을 가장 앞단에서 받아서 적합한 컨트롤러에 위임해 주는 프런트 컨트롤러라고 정의할 수 있습니다. 디스패처 서블린은 HttpServlet을 상속한다. (DispatcherServlet -> FrameworkServlet -> HttpServletBean -> HttpServlet 상속 구조) 자세히 설명하자면 클라이언트로부터 어떠한 요청이 오면 WAS의 Tomcat과 같은 서블릿 컨테이너가 요청을 받게 됩니다. 이 모든 요청을 프론트 컨트롤러인 디스패처 서블릿이 가장 먼저 받게 됩니다. 동작 과정 DispatcherServlet 으로 요청(Http..
필터(Filter) 란? 필터는 말 그대로 요청과 응답을 거른 뒤 정제하는 역할을 한다. 필터(Filter)는 J2EE 표준 스펙 기능으로 디스패처 서블릿에 요청이 전달되기 전/후에 요청에 대한 부가적인 기능을 해주는 역할을 한다. 디스패처 서블릿은 스프링 가장 앞단에 위치하는 컨트롤러이므로, 필터는 스프링 범위 밖에서 작동한다. 스프링 범위 밖에서 작동하니 스프링이 관리하는 것이 아닌 톰캣과 같은 웹 컨테이너가 관리를 한다. 필터의 흐름 동작 과정 HTTP 요청 → WAS → (필터) → (디스패처)서블릿 → 컨트롤러 순으로 동작한다.(스프링에선 서블릿이 디스패처 서블릿이 된다.) 만약 필터에서 걸러지게 된다면 디스패처 서블릿을 호출하지 않는다. 필터 체인 HTTP 요청 -> WAS -> (필터1) -..
HTTP의 단점, 보안 HTTP는 웹을 지탱하는 심플한 기술이지만 단점이 있습니다. 브라우저와 웹서버가 통신함에 있어 데이터를 암호화하지 않고 그대로 전송된다는 점이다. HTTP는 인터넷이라는 통로를 이용해 웹 서버와 브라우저가 서로 통신하게 해주므로, 해커가 중간에서 통신을 도청하게 된다면 충분히 통신하는 정보를 탈취할 수 있다. 탈취하고 그 데이터를 변조시킬 수 있다. HTTPS(Hyper Text Transfer Protocol Secure) HTTPS는 웹 브라우저와 웹 사이트 간에 데이터를 전송하는 데 사용되는 기본 프로토콜인 HTTP의 보안 버전입니다. 표준 HTTP 프로토콜과 SSL/TLS 암호화 프로토콜의 조합으로 사용자의 브라우저와 웹사이트 간에 전송되는 데이터가 암호화되어 도청이나 변조..