우선 스프링부트로 구현한 웹서버 프로그램을 도커 컨테이너화를 시키기 위해서 Jar파일을 생성해야함. 기술 스택 Gradle Project Editor : InteliJ Ultimate SpringBoot : 3.2.0 JDK : 17 1. 인텔리제이 우측 상단 코끼리 모양 Gradle 클릭 후 Tasks 클릭 2. Bulid 클릭 3. Clean 더블클릭 -> Clean의 경우 기존에 생성된 Jar와 관련된 Build 디렉토리 삭제하는 동작을 수행. 4. bootJar 더블클릭으로 Jar파일 생성 정말 간단하게 딸깍 몇번으로 Jar파일 생성 가능! 생성된 Jar파일은 아래와 같은 디렉토리에서 확인 가능함.
도커 이전에 VM이 존재했다. 13년에 출시한 도커를 사용하기 이전에는 무엇을 사용했을까? 가상머신(Virtual Machine)을 활용하여 서버 프로그램을 구축하였음. 대표적인 가상머신으로는 VMware가 있음. 그렇다면 VM은 또 뭔데? 우선 가상머신의 개념적 정의 하나의 물리적 시스템에서 각각 자체 운영 체제(OS)와 애플리케이션을 지닌 다수의 가상 머신을 만들 수 있게 해주는 것. ( 즉 물리적 컴퓨터와 동일한 기능을 제공하는 소프트웨어 컴퓨터) VM을 사용하는 이유는? VM을 사용하는 주요 이유는 서버 통합 때문 HTML 삽입 미리보기할 수 없는 소스 대부분의 운영 체제와 애플리케이션 배포는 HyperVisor에 배포되는 경우 소량의 가용 물리적 리소스만을 사용 서버를 가상화하면 각 물리 서버에..
웹서버를 개발하기 위한 소프트웨어 아키텍쳐 패턴으로 모놀리스 및 마이크로서비스 구조에 대한 포스팅 모놀리스 구조 모놀리스(Monolith) 아키텍처는 하나의 소프트웨어를 구성하는 모든 모듈과 코드를 한 프로젝트에서 관리하는 것을 말한다. 배포 또한 하나의 프로젝트를 실행시키는 것으로 끝. 장점 - 한 프로젝트 디렉토리 내에 모든 모듈 및 코드가 있기에 개발이 간단하고 리뷰가 용이함. - 소프트웨어 구조가 단순하기에 구성이 한눈에 보기 쉬움. - 한 프로젝트를 실행시키면 되기에 배포가 쉬움. - 디버깅 및 에러 대처가 쉬움. 단점 - 한 프로젝트 내에 모든 코드가 있어 코드가 길어짐. >> 코드를 작성하려면 모든 코드를 전부 이해하고 있어야 함. 서비스가 커지면 전체 구조 및 코드 흐름을 이해하기 힘듦. ..
문제 https://www.acmicpc.net/problem/2151 2151번: 거울 설치 첫째 줄에 집의 크기 N (2 ≤ N ≤ 50)이 주어진다. 다음 N개의 줄에는 N개의 문자로 집에 대한 정보가 주어진다. ‘#’는 문이 설치된 곳으로 항상 두 곳이며, ‘.’은 아무 것도 없는 것으로 빛은 www.acmicpc.net 풀이 3차원 방문체크를 활용한 Dijkstra 풀이 문제이해 문제를 읽고 예제를 보고 이해를 하려는데 개인적으로 상당히 난해했음. 일단 동작과정은 아래와 같음. #이라는 문에 대해서 어느 방향에서든 출발해도 상관없음. 빈칸 ‘.’에 대해 진행방향 그대로 직진만 가능. ‘!’ 칸은 거울 설치 가능한 곳으로써 해당 자리에 거울을 45도 설치 가능. 거울을 설치하게 되면 빛은 직진이 ..