본문 바로가기

전체 글82

도커와 쿠버네티스 - (h2+config+eureka+gateway+item) 0. 네트워크 구성 정보h2 : h2-version2jdbc:h2:tcp://172.20.0.2:1521/test172.20.0.2:8081config: config-servereurekagatewayitem1. network 설정docker network create msa-version2docker network lsdocker network inspect msa-version22. H2 생성컨테이너 다운 받아 생성docker run --network msa-version2 -d -p 1521:1521 -p 8081:81 -e H2_OPTIONS="-ifNotExists" --name=h2-version2 oscarfonts/h2데이터베이스 기본 설정docker exec -it h2-version2 .. 2024. 10. 25.
도커와 쿠버네티스 - (h2 + config + service server) 마이크로 서비스 h2 + spring config server + spring service serverh2 : 8081config server : 8080service server : 5000실행 순서1. 개별 네트워크 생성docker network create msa-clouddocker network lsdocker network inspect msa-cloud2. h2 컨테이너 생성컨테이너 다운 받아 생성docker run --network msa-cloud -d -p 1521:1521 -p 8081:81 -e H2_OPTIONS="-ifNotExists" --name=h2-cloud oscarfonts/h2데이터베이스 기본 설정docker exec -it h2-cloud /bin/bashcd /.. 2024. 10. 20.
도커와 쿠버네티스 - (h2+service server) 방법 1 (내장 메모리 사용)오류1java.lang.NullPointerException: Cannot invoke "org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(java.sql.SQLException, String)" because the return value of "org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.sqlExceptionHelper()" is null⇒ 이유hibernate로 사용하는 h2의 주소가 localhost 즉, 컴퓨터에 설치되어 있는 h2 console 앱을 사용하여 관리를 하도록 url이 설정되어 있다이렇기 때문에 도커로 j.. 2024. 10. 17.
도커와 쿠버네티스 -Docker 2 (Config Server) Spring Cloud 기반의 MSAServer & ServiceSrping CloudConfig Server, Eureka Server, Gateway ServerServices(item-service ….)MSAConfig Server설정 정보를 통합 관리하는 서버Eureka Server서비스를 관리하는 서버Gateway Server요청을 받아서 서비스를 연결해주는 서버Micro ServiceKafka서비스간 통신용Cloud 상에서 서비스를 위한 환경위에서 만든 서버 및 서빗를 Docker Container 화container 상에서 마이크로 서비스가 원활한지 여부 확인CI/CDMicro Service 개발을 위한 개발 환경 설정Cloud 에 배포ECS, EKS 선택 ⇒ 선택도 힘들고, 시간 없고…⇒.. 2024. 10. 15.
도커와 쿠버네티스 -Docker1(기초 생성) doker & k8sjava (spring boot) + jpa + h2 ⇒ docker 기반으로 위를 합쳐서 image, containter ⇒ 간단한 spring cloud기반의 웹 애플리케이션(api server)k8s가상화, 리눅스 설치, k8s(교재)kind를 사용한 수업 환경 구현클라우드 네이티브 애플리케이션 구현application(spring boot, jpa, h2) + infa( 컨테이너 실행 환경 ⇒ 설계)인프라 설게 (컨테이너으 ㅣ설게 ⇒ 서비스 분할 ⇒ MSA 아키텍쳐)spring cloud native applicationdoker, K8s(mini cube : 경량 컨테이너 오케스트레이션)0. 흐름자바 웹 app 개발→ image 로 빌드 (dokcer 에서 사용할 수 있는 i.. 2024. 10. 13.
쿠버네티스 기초 Chapter1 : 쿠버네티스 배경IT 환경의 변화서버 환경의 변화과거 메인프레임 중앙 집중식 서버 관리를 통해 운영하는 환경에서는 빠른 운영 변화를 할 수 없었다 그래서 나온 대안이 메인 프레임 위에 가상화 환경을 구축하여서 빠르게 인프라를 확장 시키는 방법 이다각각의 인프라 확장 방식은 메인프레임은 스케일 업을 가상화 환경은 스케일 아웃 이다스케일 업(scale up) : 서버 자체 성능을 향상 ( cpu, 메모리 추기) 시키는 방식스케일 아웃(scale out) : 기존 서버와 같은 사양 또는 비슷한 사양의 서버 대수를 늘려서 처리 능력을 향상 시키는 방식퍼블릭 클라우드 모델비즈니스의 빠른 변화에 대응하기 위해 기존의 내부 서버 서비스보다는 구축된 외부 서비스를 빌려서 필요할 때만사용하는 클라우드.. 2024. 10. 1.
[JPA] 영속성 컨텍스트 영속성 컨텍스트(Persistence Context)는 객체와 데이터베이스 사이의 매핑을 관리하는 엔티티 매니저(Entity Manager)의 일종의 캐시 영역이는 자바 ORM(Object-Relational Mapping) 기술인 JPA(Java Persistence API)에서 핵심적인 역할을 수행합니다.영속성 컨텍스트는 엔티티의 생명주기를 관리하며, 데이터베이스와의 동기화를 통해 데이터 일관성을 유지합니다.1.1 Entity와 Entity 관리Entity데이터베이스의 테이블과 매핑되는 객체(자바 클래스)@ Entity 사용Entity Manger엔터티의 생명주기와 밀접한 관련성⇒ 프로젝트의 복잡성이Entity의 생명주기영속성 컨텍스트의 특징/ 이점1차 캐시 (First Level Cache):영속성.. 2024. 8. 29.
[JPA] Framework 1.1 영속성 (persistence)데이터를 생성한 프로그램이 종료되더라도 사라지지 않는 데이터의 특성영속성을 가진 데이터는 디스크에 존재하고 캐시나 메모리에 존재하는 데이터는 프로그램을 종료하면 모두 사라지게 된다캐시나 메모리에 있는 데이터를 사라지지 않게 하기 위해 파일 시스템, 관계형 데이터베이스, 객체 데이터베이스를 활용하여 데이터를 영구 저장하고 있다Persistence Layer프로그램 아키텍쳐에서 데이터에 영속성을 부여하는 계층과거는 JDBC를 사용해 직접 구현하였지만 지금은 persistence framework를 이용하여 개발계층 참고(https://gmlwjd9405.github.io/2018/12/25/difference-jdbc-jpa-mybatis.html)Persistence .. 2024. 8. 26.
JWT 발급 규칙 JWT 가 탈취될 경우가 발생하므로 다중 토큰을 사용하게 된다다중 토큰 : Refresh 토큰과 생명 주기자주 사용되는 토큰의 생명주기는 짧게(약 10분),⇒ 생명주기가 짧으면 만료시 매번 로그인을 진행하는 문제가 발생, 생명주기가 긴 Refresh도 함께 발급한다.)이 토큰이 만료되었을 때 함께 받은 Refresh 토큰(24시간 이상)으로 토큰을 재발급.1. 로그인 성공시 생명주기와 활용도가 다른 토큰 2개 발급 : Access/RefreshAccess 토큰 :권한이 필요한 모든 요청 헤더에 사용될 JWT로 탈취 위험을 낮추기 위해 약 10분 정도의 짧은 생명주기를 가진다.Refresh 토큰 :Access 토큰이 만료되었을 때 재발급 받기 위한 용도로만 사용되며 약 24시간 이상의 긴 생명주기를 가진다.. 2024. 8. 21.
Web Storage 웹스토리지는 HTML5 표준부터 지원하게된 클라이언트에 데이터를 저장하는 API특징웹스토리지는 최소 2MB의 많은 정보를 저장정보를 저장할 뿐 쿠키처럼 서버에 전송오리진(도메인,프로토콜,포트로 이루어진 식별자) 단위로 접근이 제한되는 특성 덕분에 CSRF(Cross Site Request Forgery)로 부터 안전웹스토리지는 데이터를 영구적으로 저장⇒ 종류에 따라 session storage, local storege1. Session Storage세션 스토리지는 클라이언트 측에서 데이터를 저장하는 데 사용세션 스토리지에 저장된 데이터는 브라우저 세션이 유지되는 동안에만 유지⇒ 브라우저를 종료하면 세션 스토리지에 저장된 데이터가 모두 삭제세션 스토리지는 보안 상의 이유로 동일한 도메인에서만 액세스세션 .. 2024. 8. 14.
COOKIE SESSION TOKEN COOKIE, SESSION, TOKEN1. COOKIE만료기간이 있는 클라이언트 단에 저장하는 데이터 파일HTTP 헤더에 포함되는 텍스트 데이터 파일 이름, 만료기간, 도메인, 경로 정보와 key, value 값으로 구성사용자 인증이 유효한 시간을 명시할 수 있고, 유효시간 내에 브라우저가 종료되어도 인증 유지하나의 쿠키 값은 4KB 까지 저장쿠키 종류세션 쿠키 : 쿠키에 만료일이 포함되지 않으며, 램 메모리에만 저장되어 브라우저를 닫는 순간, 쿠키가 소멸영구 쿠키 : 만료일이 포함되어 있어서 만료일까지는 브라우저를 종료하더라도 사용자의 컴퓨터에 저장되어 상태를 유지할 수 있으며, 만료 시기가 되면 자동으로 삭제장점대부분 브라우저가 지원데이터 유효기간 지정 가능XSS(사이트 간 악성 js 코드를 심는 .. 2024. 8. 14.
API 기초 인증과 인가인증(Authentication)사용자가 누구인지 확인하는 단계로그인이 대표적⇒ 데이터베이스에 등록된 아이디와 패스워드를 사용자가 입력한 아이디와 비밀번호와 비교해서 일치 여부를 확인하는 과정인가(Authorization)인증을 통해 검증된 사용자가 애플리케이션 내부의 리소스에 접근할 때 사용자가 해당 리소스에 접근할 권리가 있는지 확인하는 과정⇒ 로그인 한 사용자들 중 특정 사용자(관리자, 매니저) 가 공지 게시판에 접근하여 글을 쓰려고 할때 접근 등급을 확인해 접근을 허가하거나 거부 함통신 방법APIApplication Programming Interface의 서로 다른 두 프로그램이 상호작용하여 통신하기 위한 매커니즘 즉, 어떤 소프트웨어의 기능을 다른 소프트웨어에서 사용할 수 있도록 제.. 2024. 8. 4.