전체 글 50

[네트워크] 네트워크와 프로토콜

데이터 실제 생활의 많은 일들을 간단히 문자, 숫자, 기호 등으로 표현하여 사람이나 컴퓨터가 처리 할 수 있도록 만든 자료 정보 데이터를 가공하거나 특정한 의미를 부여하여 사람들 사이의 의사 결정 도구로 활용할 수 있는 값 EX) 숫자 20 : 데이터 -> 나이 20 : 의미 부여 -> 20세 : 정보 정보통신의 3대 목표 정확성,효율성,보안성 정보통신의 3요소 정보원(송신원) 정보를 생산하는 사람, 전송매체(전송기기), 정보처리원(수신원) 정보를 받아드리는 사람 네트워크의 발전과정 음성 회선 공중 교환 전화망(PSTN : Public Switched Telephone Network) 디지털 전용회선 공중 교환 데이터망(PSDN: Public Switched Data Network) 종합정보통신망(ISD..

공부/네트워크 2023.12.27

[QueryDSL] QueuryDSL vs JPQL

JPQL(Java Persistence Query Language)은 무엇인가? JPA는 SQL을 추상화한 JPQL이라는 객체 지향 쿼리 언어를 제공한다. 따라서 테이블을 대상으로 하는게 아닌, 엔티티 객체를 대상으로 쿼리를 수행하는 언어이다. QueryDSL은 무엇인가 Querydsl은 타입에 안전한 방식으로 HQL 쿼리를 실행하기 위한 목적으로 만들어졌다. 타입에 안전하도록 도메인 모델을 변경하면 소프트웨어 개발에서 큰 이득을 얻게 된다. 도메인의 변경이 직접적으로 쿼리에 반영되고, 쿼리 작성 과정에서 코드 자동완성 기능을 사용함으로써 쿼리를 더 빠르고 안전하게 만들 수 있게 된다. JPQL의 사용방법 JPQL은 쿼리문을 직접 작성하고, 파라미터 바인딩도 직접해주어야한다. @SpringBootTest..

공부/Spring 2023.12.18

[스프링] AuditorAware

AuditorAware란 요청이 왔을때, 해당 사용자의 정보를 등록해주는 기능을하는 컴포넌트이다. 아래는 AuditorAware를 빈으로 등록해준다. ApplicationAuditAware는 실제로 동작하는 기능을 정의했다. @Bean public AuditorAware auditorAware() { return new ApplicationAuditAware(); } ApplicationAuditAware에서는 요청이 왔을때, SecurityContextHolder에서 사용자 정보를 불러와서, 사용자번호를 리턴해준다. 간략한 프로세스는 이것이 전부이지만, 그전에 수행해야할 프로세스가 있다. 물론 이전에 SecurityContextHolder에서 setAuthentication을 해주어야한다. 나의 경우 ..

공부/Spring 2023.11.22

[스프링]Spring Security - SecurityFilterChain

스프링 필터 아키텍처 필터는 무엇인가 스프링 필터의 이해 스프링 시큐리티의 이해 필터는 무엇인가 필터는 클라이언트의 요청을 수행하기 전 공통으로 거치는 검사이다. 클라이언트가 응용프로그램에 요청을 보내면, 톰캣 서블릿 컨테이너에서 요청을 받는다. 요청은 서블릿 컨테이너의 필터를 거치고 서블릿을 통해 요청이 수행된다. 스프링 필터의 이해 스프링은 기존 필터에 위임 필터 프록시를통해 커스텀 필터를 적용할 수 있다. 오른쪽 이미지와 같이 필터를 Bean으로 등록하면 필터를 등록할 수 있다. 스프링 시큐리티의 이해 스프링에서는 위임 필터 프록시(Delegating Filter Proxy)를 통해 필터를 추가할 수 있다. 스프링 시큐리티는 위임 필터 프록시에서 시큐리티 필터 체인을 통해 인증을 할 수 있도록한다...

공부/Spring 2023.11.22

[카카오 2023 코딩테스트] 택배 배달과 수거하기_java

https://school.programmers.co.kr/learn/courses/30/lessons/150369 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 해결방법 찾기 해당 문제는 결국 가장 먼 곳 부터 배달 및 수거가 완료되는것이 낫다고 판단한다.(그리디 알고리즘) 이유는 가장 비효율적인것이 물류창고에서 가장 먼 곳을 가게되는것이라고 보이기 때문이다. 그리고 여기서 감안해야 하는 부분이 기사는 도착지를 여러번 방문할 수 있다는 점이다. 그말은 즉슨 굳이 한번에 배달, 수거를 할 필요가없고 여러번 방문해도 된다는 점이다. 2. 코드 구현하기..

공부/알고리즘 2023.10.31

[AWS] Instances Purchasing Options_Solution Architecture - Associate

AWS EC2 인스턴스 구매 옵션 Amazon Elastic Compute Cloud (EC2)에서는 다양한 인스턴스 구매 옵션을 제공하여 여러 종류의 워크로드와 비용 요구 사항을 충족시킬 수 있습니다. 이 글에서는 주요 구매 옵션을 살펴보고 언제 사용하는 것이 가장 적합한지 알아보겠습니다. 1. 온디맨드 인스턴스 (On-Demand Instances) 특징: 사용한 시간만큼 비용을 지불합니다. 리눅스 및 윈도우는 1분부터 초 단위로 청구, 다른 OS는 시간 단위로 청구됩니다. 예측 가능한 가격 정책으로 장기 약정 필요 없음. 사용 사례: 단기적이고 중단 없는 워크로드에 적합. 애플리케이션의 거동을 예측하기 어려운 경우. 2. 예약 인스턴스 (Reserved Instances) 특징: 72% 할인을 제공..

공부/AWS 2023.09.26

쿠버네티스 - 구글 쿠버네티스 엔진 사용해보기

학습목표 GKE(Google Kubernetes Engine)을 구성할 수 있다. 예시 nginx 를 실행하여 호스팅할 수 있다. 1. GKE 클러스터 생성 오토파일럿 클러스터(Autopilot Cluster) 오토파일럿 클러스터는 Google이 클러스터 운영을 대부분 관리하는 완전 관리형 쿠버네티스 서비스이다. - 노드 관리 자동화 - 프로비저닝, 업그레이드, 확장 자동화 - 보안,로깅,모니터링 자동화 스탠다드 클러스터(Standard Cluster) 노드풀을 직접관리하고, 크기, 유형, 수를 설정해야한다. 클러스터의 업그레이드를 수동으로 관리해야하고 보안 및 관리에 대한 책임을 사용자가 지닌다. 지금은 쿠버네티스를 공부하는 과정이기에 스탠다드 클러스터로 설정한다. 만들기를 완료하게 되면 클러스터가 생..

공부/k8s 2023.05.17

쿠버네티스 - 2. 쿠버네티스의 특징

학습목표 선언적 API에 대해 설명할 수 있다 워크로드 분리에 대해 설명할 수 있다 1. 선언적 API 선언적 API 란 원하는 상태를 선언 했을때, 시스템에서 자동적으로 서비스가 선언한 상태로 유지되고 있는지 확인하고 , 해당 상태로 만들어주는 것을 말한다. 예를들어 결제라는 서비스가 항상 10개가 실행되어야 한다. 라고 선언 했을경우, 어떤 문제로 인해 8개 밖에 실행되고 있지 않다고 한다면, 문제가 해결됬을때 자동으로 10개가 실행될 수 있도록 하는것이다. + kubectl 1.15 버전 이상에서는 서비스에 대한 재시작 기능도 추가되었다. 2. 워크로드 분리 분산 시스템을 개발할때는 분산된 프로세스들이 잘 실행되는지 , 이상이 생겼을 경우 어떻게 처리해야하는지 등 고려해야 한다. 이 때 쿠버네티스는..

공부/k8s 2023.05.17

쿠버네티스 - 1. 쿠버네티스란

학습목표 컨테이너에 대해 설명할 수 있다. 컨테이너 오케스트레이션에 대해 설명할 수 있다. 1-1. 컨테이너 운영서비스는 서버에 어플리케이션을 동작시키는 원리로 이루어져있다. 해당 이미지를 보면 인프라위에 하이퍼바이저가 있고 그 위에 게스트OS위에서 어플리케이션을 동작시킨다. VM구조는 기존에 많이 쓰이던 방식이다. 해당 구조는 별도의 물리적인 시스템처럼 동작하기 때문에, 다른 VM에 영향을 주지 않는다. 그러므로 각 VM별로 다른 운영체재와 어플리케이션을 실행할 수 있다. 하지만 위의 그림처럼 어플리케이션 별 Host Operating System 이 생성되는데 여기서 많은 자원을 사용하게 된다는 단점이 있다. 그래서 나오게 된것이 컨테이너 방식이다 컨테이너 방식은 기존의 가상머신과달리 컨테이너는 전체..

공부/k8s 2023.05.17