분류 전체보기 64

Abstraction : Container, MSA ( 25.01.08 )

추상화( abstraction )(1) 복잡한 것을 감추는것(Encapsulation) → 보다 효율적인 설계, 구축(2) 필요한 기능만 오픈하는 것(3) 인터페이스의 표준화 → 다른 기능, 모듈과 소통(ex) 언어별 SDK library(개발자가 특정 플랫폼, 서비스, 또는 API와 상호작용할 수 있도록 도와주는 라이브러리 또는 도구 모음)를 전달하는 것보다 서비스 스펙으로 제공한 Restful API를 호출하는 것이 좋음 ( 언어별 통신을 모두 표준화 ) 대표적인 추상화 예시네트워크의 추상화 : SDN(software defined network) ⇒ 모든 개체를 묶어서 원하는 네트워크 환경의 스위치로 만듬스토리지의 추상화 : SDS(software defined storage) ⇒ 하나의 디스크인것..

CLOUDWAVE 2025.01.15

Docker Compose practice : compose file ( 25.01.06-07 )

Compose file - Basic[ Config 파일의 형식들 ]json : { }으로 key와 value로 구성됨{ "A" : { "key" : "value" }, "B" : 30, "items" : [ "Apple", "Banana" ]}​XML : 으로 tree형태의 계층구조로 구성됨YAML : 들여쓰기로 단락을 구분함 / json과 호환( 작성법만 다름 ), 섞어서 쓰기 가능⇒ config 파일에서 주로 쓰이는 형식 : docker compose yaml, kbuernates, Circle CI, github action  들여쓰기나 즉시 값은 value가 됨value에 해당하는 값은 들여쓰기를 통한 단일값(key:val), value값, 다중값 리스트(-)A : key : valueB : 3..

CLOUDWAVE 2025.01.14

Docker Compose practice : compose CLI ( 2025.01.03 )

Docker Compose CLI[ 배경상황 ]간단한 웹사이트 : FRONT서버, BACKEND서버, DB서버, Cache(Radis) & 서비스는 점점 세분화로 작아지고 다양해짐 ⇒ 여러 컨테이너가 필요함각 컨테이너가 중단없이, 문제없이 지속적으로 잘 운영될 수 있도록 관리할 수 있어야함 docker compose : 여러 컨테이너를 정의 + 네트워크 설정, 볼륨 구성 & 재실행, 문제 발생대처 등을 제시 = Define and run multi-container applications with Docker. Service : 논리적으로 정의된 단위 -> 실제 실행인스턴스 container로 구성Compose : 이들을 다루는 도구Project : 전체 구성을 묶는 단위 docker compose-f ..

CLOUDWAVE 2025.01.14

Dokcer Practice : Docker Volume, Docker Network, Docker Advance ( 2025.01.02 )

Doker 볼륨격리된 환경에서 각 컨테이너들은 각자의 컨테이너 레이어(R/W 레이어)에 데이터를 저장한다. 컨테이너간 데이터를 교류할 방안, 장치가 필요해진다. 또한 컨테이너 레이어에 작성된 데이터는 휘발가능성이 높기에 추가적으로 저장보존해야할 필요가 있다. 볼륨(Volume) : 컨테이너의 라이프사이클에 종속되지 않는 외부 저장장치 ⇒ 컨테이너의 생존여부 관계없이 관리됨컨테이너에 mount 하여 자료를 옮기거나 보존이 가능(일종의 USB)호스트의 변경상황을 내부로 전파가능(일종의 port)특정 디렉토리에 볼륨을 mount한 이후에는 로컬의 스토리지를 쓰는 것이라고 인식하지만 실질적으로 공유 스토리지(볼륨)에 쓰게 된다. DB 클러스터 작업과 유사한 형태container1(MasterDB) : 쓰기작업 ..

CLOUDWAVE 2025.01.14

Dokcer Practice : Docker IMAGE, Docker Container ( 2024.12.31 )

서비스의 흐름 : 기획, 설계, 디자인, 개발, 운영지속가능성(sustainability) : 서비스를 오랫동안 운영dev-ops : 반복적인 작업들을 자동화하는 것이 핵심 ( human error를 제거 )자동화를 위한 추상화 : 핵심적인 개념, 기능을 간추려 내는 것 ( ex. 하나의 명령어 내부에 수많은 API들이 호출됨 )하드웨어 추상화 : VMware( 물리적인 서버는 하나지만 여러개처럼 )서비스 추상화 : container기술인 docker!서비스 인프라를 추상화 : kubernetes개발흐름 : 물리적인 서버 → VMware → docker → kubernetes [ VM vs Container ]VM : 하드웨어 위에 여러 OS를 올림 = OS단위로 격리Container : OS는 하나( ..

CLOUDWAVE 2025.01.14

[ 백준 단계별 알고리즘 ] 브루트 포스(Brute Force) - JAVA

완전탐색(Exhaustive Search) : 가능한 모든 경우의 수를 전부 탐색하여 문제를 해결하는 방법Brute Force : 반복문이나 조건문을 사용하여 가능한 모든 경우를 하나씩 모두 테스트하는 방법순열(Permutation) : 주어진 n개의 원소 중에서 r개의 원소를 선택해 순서대로 나열하는 모든 경우의 수를 찾는 방식 -> 조합, 순서문재귀 : 재귀 호출을 통해 문제를 여러 작은 하위 문제로 분할하여 해결하는 방법 -> DFS(깊이 우선 탐색)비트 마스크(Bit Mask) : 이진수를 이용하여 특정 상태나 조합을 표현하는 기법BFS(너비 우선 탐색), DFS(깊이 우선 탐색) : 그래프의 노드탐색 기법 Brute Force의 사용조건달성하고자 하는 솔루션이 명확함풀이의 수가 제한 [ 백준 2..

algorithm 2024.09.14

[ 스프링 입문 ] 스프링 DB접근 기술

순수 JDBC : SQL을 통해 애플리케이션 서버와 DB를 연결JPA : 쿼리없이 객체를 DB에 저장, 접근 가능  1. H2 데이터베이스 설치 🍃 H2 데이터 베이스Java로 작성된 오픈소스 경량형 관계형 데이터베이스 관리 시스템(RDBMS)내장형(Embedded) 모드와 서버(Server) 모드를 동시에 사용할 수 있음 - 데이터베이스 파일(test.mv.db) 로컬에 저장되면서, 서버 모드로 실행된 H2 서버를 통해 네트워크를 통해 데이터베이스에 접근할 수 있다. ( 해당 파일을 삭제(rm)하여 데이터베이스를 삭제할 수도 있다. )  🔸로컬환경에서 H2 데이터베이스 활용방식다운로드 받은 H2/bin파일내의 h2.sh (Linux/Mac) 또는 h2.bat (Windows) 스크립트를 사용하여 H..

web programming 2024.09.08

[ 스프링 입문 ] 웹 MVC

1. 홈화면 추가컨트롤러가 정적 리소스보다 우선순위가 높다.홈 경로(/)에 매핑한 컨트롤러가 존재한다면 index.html(resources/static/index.html)이 아닌 이것이 먼저 동작하여 홈화면으로 동작하게 된다.   🔸 src/main/java/프로젝트명/controller/HomeController.javapackage hello.hello_spring.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;@Controllerpublic class HomeController { @GetMapping("/") publi..

web programming 2024.09.02

[ 스프링 입문 ] 스프링 빈과 의존관계

1. 스프링 컨테이너와 의존관계   🔸 스프링 컨테이너 (Spring Container): 스프링 프레임워크의 핵심 요소로 스프링 애플리케이션의 객체들(Bean)들을 관리한다. 의존성 주입(Dependency Injection, DI)과 제어의 역전(Inversion of Control, IoC)을 통해 생성 및 객체간 관계설정을 수행한다.※ 동작방식 : Spring이 수행될때 스프링 컨테이너가 어노테이션에 해당하는 객체(빈)로 생성하여 관리한다. 사용자는 필요시마다 객체를 직접 생성하지 않고 스프링 컨테이너에 등록되어 관리되는 하나의 객체를 공유하여 쓰는 방식을 이용한다. 🍃 DI (Dependency Injection) : 의존성 주입의존관계 : 컨트롤러는 서비스를 통해 동작하고 서비스는 리포지토..

web programming 2024.09.02

[ 스프링 입문 ] 회원관리 예제

1. 비즈니스 요구사항 정리 🍃 일반적인 웹 어플리케이션의 계층구조    🔸Controller : MVC동작, API 통신에서 컨트롤러의 역할( ex. 요청처리, 응답생성, 경로매핑 )🔸Service : 도메인을 가지고 핵심 비즈니스 로직의 구현( ex. 중복가입제어, 로그인 아이디 비밀번호 일치판단.. )🔸Domain : 데이터베이스에 저장하고 관리되는 비즈니스 도메인 객체🔸Repository : 데이터베이스에 접근, 도메인 객체를 저장하고 관리    데이터베이스가 선정되지 않았기에 Repository는 여러 상황에따라 변경될수 있도록 인터페이스로 설계한다.( 추후 단순 JDBC, Mybatis, JPA 등으로 구현가능 )초기개발단계에서는 가장 가볍고 간단한 메모리기반 저장소 구현체를 사용한다..

web programming 2024.09.02