본문 바로가기

전체 글219

(24.10.29) Comparator 인터페이스와 람다식 Java에서 @FunctionalInterface Annotation이 붙은 함수형 인터페이스는@FunctionalInterfaceinterface 인터페이스이름 { 인터페이스 정의 }// 람다식을 사용할 수 있는 함수형 인터페이스 정의를 할때 Annotation 사용 위와 같은 형태로 띄어지게 되고, 익명 클래스처럼 { } 안에 해당 함수형 함수에 해당하는  Runnable runnable = new Runnable() { @Override public void run() { System.out.println("Hello from the anonymous class!"); } }; .. 2024. 10. 29.
(24.10.21) Message Queue 그리고 Redis 실제로 천 단위로 요청이 발생하는 스트리밍, 또는 실시간 대용량 데이터즉, 트래픽에 관해서비동기 서비스를 사용해서 프로젝트를 진행하지도 못했고(높은 서비스 가격) 관련해서 많은 서비스가 존재하기 때문에,관련 면접 질문, 또 인프라 관련 지식을 위해 알고 있는 비동기 서비스인 Redis와 비교도 하면서 가장 대표적인 3가지 Message Queue 비동기 서비스를 표로 정리를 했다.메시지 큐 Message Queue메시지는 어떠한 하나의 요청 을 말하는 것평문 부터 여러 형태의 데이터를 Application간에 전달하는 것을 목적으로 하는 것ex) JSON, XML, BinaryData(이미지, 파일, 객체 등), 등등Apache Kafka대용량 데이터 처리와 실시간 데이터 스트리밍을 위한 분산형 스트리밍.. 2024. 10. 21.
(24.10.17) NginX 정리 + 본인 프로젝트에서 활용한 부분 추가 실제 프로젝트에서 NginX를 활용해서 일종의 리버스 프록시 서버로 React 컨테이너와 Spring Boot 가 실행되는 컨테이너 사이에서 사용자 화면단에서 작동될 수 있도록 활용을 했다.하지만, NginX를 사용한 이유, 그리고 어떻게 구체적으로 작동하는지에 대해서 더 자세하게 찾아보고 프로젝트 구성과 데이터 흐름을 더욱 이해하려고 했고 이를 정리했다.NginX고성능 웹 서버, 리버스 프록시 서버Web Application 단에서 요청을 처리, 정적 콘텐츠를 제공하는 웹서버 역할아키텍쳐 및 구조비동기 이벤트 기반의 아키텍처고성능의 동시 연결 처리 기능단일 쓰레드에서 여러 요청을 동시에 처리하는 방식메모리 사용량을 줄이고 성능을 향상Process 구조Master ProcessNginX 설정 파일을 읽고.. 2024. 10. 17.
(24.10.14) Swagger & Spring REST Doc 많이 사용할 수 있는 협업 상황에서의 API자동 문서화 도구 중에 Spring Framework와 관련된 툴에 관해실제로 사용한 경험이 없기 때문에각각의 대표적인 Swagger 와 Spring REST Doc에 관련해서 해당 툴/프레임워크에 대한 내용과 적용방법을 여럿 찾아서정리를 했다. 관련 부분은 Postman이나 HTML로 굳이 수동으로 하나하나 적었던 개발단계에서의 API  문서가 아닌,실제 협업을 위한 문서화에 적극적으로 활용이 되는 것 만큼적어도 어떻게 작동이 되고 어떻게 어느 시점에 사용이 되는지를 알아둘 필요가 있어선 정리를 했다.Swagger자동으로 RESTful API 설계, 문서화, 테스트 등 관리를 할 수 있도록 하는 오픈 소스 Framework자동으로 API 상세 명세 문서화Jav.. 2024. 10. 14.
(24.10.10) TDD & DDD / Filter & Interceptor & AOP 비교해보기 계속 CS 관련 모의 면접과 면접 코칭을 받고 있는데알고 있는 CS 지식을 자연스럽게 말하는데 많이 어려우나특히 여러개를 비교하라는 점에서 정리가 안되어있기 때문에 당황을 하는 경우가 많았다. 특히, DDD, AOP, Filter, Interceptor등 산발적으로 정리가 된 정보를 보다 함께 정리를 하면서 스스로 공부하면서비교를 할 수 있도록 하면서 면접 피드백 용, 다음 면접 대비를 하도록 한다. 특히, 정의가 애매할 수 있는 interceptor에 한해서 좀더 다뤄보면서 정리했다. TDD(Test-Driven Development) & DDD (Domain-Driven Design)TDD(Test-Driven Development)테스트 주도 개발실제 코드를 작성, 구현하기 전에 먼저 테스트, 또는.. 2024. 10. 10.
(24.10.08) 보안 공격 정리 : SQL Injection, CSRF, XSS Spring Framework에 기반으로 백엔드를 작성했기 때문에,그 안의 Spring Security를 활용해서 기본적으로 CSRF 등을 방지할 수 있는 기능이 활성화되어 이를 사용하기도 했고,JWT 역시 헤더에 넣는 방향으로 탈취를 방지하도록 설계를 했기 때문에직접적으로 보안 취약점을 다룰 수 있는 기회가 많이 있지는 않았다. 하지만, 실무에서 또, 언제나 항상 관련한 내용을 인지하고 있고, 어떻게 공격이 진행이 되는지,그리고 어떻게 방어와 예방을 할 수 있는지를 찾아보고 나름대로 내용을 합쳐서 정리를 했다. SQL InjectionApplication 에서 외부에서 입력한 값을 직접적으로 SQL 쿼리에 포함시켜 DB에 접근하여 실행시는 과정에서의 취약점DB를 임의로 조작, 중요 정보를 서버에서 탈취.. 2024. 10. 8.
(24.10.07) CAP 이론 정리 분산된 DB 등의 환경에서 이뤄져야하는 속성에 관련하여 정리를 했다.트랜잭션이나, 또는 기본적인 DB 관련 이론에 비해서 개념에 관련된 부분이라처음 들어본 이론이기도 하고,현대 클라우드 기반의 분산 시스템 Distributed System에서 어떻게 활용을 할 수 있을 지 볼 수 있다고 생각해서간단할 수 있지만, 여러 예시를 찾아보기도 하면서 정리했다. CAP 이론분산 시스템에서 3가지 속성(일관성, 가용성, 네트워크 분할 허용성) 중 모두를 동시에 만족할 수 없고, 2가지만을 만족시킬 수 있다는 이론분산 시스템 : 데이터를 저장하는 클라우드 등의 데이터 관리 시스템 등의 환경에릭 A. 브루어 교수가 2000년에 분산 컴퓨팅에 대해서 처음으로 주장일관성 Consistency분할된 모든 노드에서 동일한 데.. 2024. 10. 7.