목록Backend (169)
개발 무지렁이
𐂂 종속성 및 소스코드가 변경되지 않은 경우, 새 실행 인스턴스를 생성할 필요가 없다. ⚠️ docker run [이미지ID]: 이미지를 기반으로 새 컨테이너를 생성 및 실행 이미지가 변경되지 않은 경우, 새 컨테이너를 생성할 필요가 없다. 기존 컨테이너를 다시 시작하면 된다. docker start [컨테이너NAME] ⚠️ docker run -it [이미지ID]로 생성한 컨테이너는, 이후 docker start -i 로 재시작할 때 기본적으로 터미널을 노출하는 mode로 재시작된다. 𐁍 attached mode와 detached mode 🦁 attached mode (연결모드): 컨테이너를 foreground에서 실행, 실행 중인 컨테이너의 출력결과(로그)를 수신하겠다. 🦁 detached mode ..
𐂂 도커허브(Docker Hub) docker run [이미지NAME] : 이미지의 실행 인스턴스(= 컨테이너)를 만든다. 도커허브에서 이미 존재하는 이미지 (🏅 Docker Official Image)를 사용할 수 있다. 즉, 해당 이미지가 내 로컬에 없으면, 도커허브에서 자동으로 이미지를 가져온다. (이미지는 컨테이너에 필요한 모든 논리와 코드, 환경을 보관하고 있다.) 그렇게 가져와서 실제로 실행중인 이미지 인스턴스를 '컨테이너'라 부르는데, 컨테이너는 주변환경과 격리되어 있고, 격리*되어 실행된다. ⚠️ 컨테이너 내부에서 실행 중인 인터렉티브 쉘이 있다고 해서, 이 쉘이 사용자에게 노출된다는 의미가 아니다.(격리되어 있기 때문에) (ex. 노드에 의해 노출된 인터렉티브 쉘은 컨테이너에 의해 자동으..
𐂂 API Gateway Service 요청에 대한 단일 진입점이자, 실제 백엔드 서비스와 접속하고, API 호출에 대한 정책, 인증 및 Access 제어를 적용하여 중요한 데이터를 보호하는 트래픽 관리자를 말한다. 사용자가 설정한 라우팅 설정에 따라 각각 엔드포인트로 클라이언트 대신 요청하고, 응답을 받으면 다시 클라이언트로 응답을 전달하는 프록시 역할을 수행한다. 🎯 목표: 시스템 내부구조는 숨기고, 외부 요청에 대해 적절한 형태로 가공해서 응답할 수 있다. 🍩 API 관리 및 제어 : 다양한 마이크로서비스를 통합하고, 클라이언트에 필요한 API를 제공 (API 버전관리, 엔드포인트 관리 및 API문서화 기능 제공) 🍩 보안 및 인증 및 권한부여 : API 호출을 인증하고, 권한부여할 수 있으며, A..
𐂂 Service Discovery 외부에서 마이크로서비스들을 검색하기 위해서 사용되는 개념이다. 컴퓨터 네트워크 환경에서 사용가능한 마이크로서비스의 위치와 구성을 자동으로 찾고 식별하는 프로세스를 말한다. 특정 마이크로서비스가 가동되는 '서버의 이름'이 Key값이 되고, 마이크로서비스가 '가동되는 위치'가 Value값이 된다. 마이크로서비스는 Eureka Server(service discovery)에 자신을 등록한다. 클라이언트가 특정 마이크로서비스를 검색하고 싶으면 API Gateway와 같은 서비스를 통해 요청정보를 Eureka Server에 전달한다. Eureka Server는 등록된 마이크로서비스 정보를 조회하여, 클라이언트가 찾고자하는 마이크로서비스를 검색하고 해당 마이크로서비스가 발견되면,..
🪛 Application.yml spring: thymeleaf: cache: false prefix: classpath:/templates/ suffix: .html devtools: livereload: enabled: true restart: enabled: true datasource: url: jdbc:h2:tcp://localhost/~/test username: sa password: driver-class-name: org.h2.Driver jpa: hibernate: ddl-auto: create server: port: [지정한 포트번호] my: admin: [kakao developers에서 발급받은 admin key] 📜 payment.html kakao pay 🖤 카카오 페이(단건..
📕 참고 자료 📕 𐂂 AOP (Aspect Oriented Programming)가 필요한 상황 ❓시간을 측정하는 로직을 모든 메서드에 적용하려면 시간을 측정하는 로직이 핵심 관심사항(CORE CONCERN)은 아니지만 모든 메서드에 들어가야 할 공통 관심사항(CROSS-CUTTING CONCERN)이다. 공통 관심사항을 모아놓고 원하는 곳에 적용할 때, AOP가 필요하다. 🗝️ 원하는 적용대상(target)을 지정할 수 있다. 🗝️ 보통 패키지 레벨로 target을 설정한다. 📜 TimeTraceAop.java @Aspect @Component //Spring Bean으로 등록된다. public class TimeTraceAop { @Around("execution(* hello.hellospring...