반응형 전체 글346 졸업 프로젝트 세팅 시작하기(aws, ec2, gabia, rds, docker, spring) 다음주면 슬프게도 벌써 개강이다. 필자의 학교는 3학년 2학기에 졸업 프로젝트를 하는데, 12주 동안만 진행한다. 짧으므로 개강전에 미리 사용할 서버 환경을 조금이나마 구축하려고 한다. 먼저 할 일은 다음과 같다. (계속 수정할 여지가 있다) 새로운 AWS 프리티어 계정 생성 ec2 인스턴스 생성 후 탄력적 IP 할당 가비아에서 도메인 구매 rds 세팅. docker 세팅: 스프링 컨테이너 + nginx + redis(추후에 추가, 다른 컨테이너도 추가할 예정) ssl를 사용해 https 적용하기 도커와 깃허브 액션을 통합해 CI CD 파이프 라인 구축하기. 일단 이번 포스팅에서는 5번 스프링 컨테이너까지 띄워보겠습니다. 1. 새로운 AWS 프리티어 계정 생성 프리티어 계정으로 가입을 진행했다. http.. 프로젝트 2022. 8. 25. ERROR: no matching manifest for linux/arm64/v8 in the manifest list entries 필자의 노트북은 M1 에어이다. 도커 컴포즈 파일로 실습을 하면서 이미지를 pull 하다가 아래와 같은 에러 발생했다. ERROR: no matching manifest for linux/arm64/v8 in the manifest list entries 직역하면 '오류: 매니페스트 목록 항목에 linux/arm64/v8과 일치하는 매니페스트가 없습니다.' 이다. 오류를 보고 처음 든 생각은 애플 실리콘 칩을 지원하지 않는 것을 Pull 했구나 라는 생각이 들었다. 오류를 구글링을 해보니 이에 대한 해결책은 2가지가 있는 것 같다. 1. 첫 번째 해결책인 .yml 파일에 platform 설정 필자는 mysql 이미지를 pull 하는 과정에서 오류가 발생했다. 첫 번째 해결 법은 우리가 사용하는 docke.. Docker 2022. 8. 18. 도커 컴포즈 도커 컴포즈 시스템 구축과 관련된 명령어를 하나의 텍스트 파일(정의 파일)에 기재해 명령어 한번에 시스템 전체를 실행하고 종료와 폐기까지 한 번에 하도록 도와주는 도구가 바로 도커 컴포즈다. Dockerfile과 비슷한 면모를 보인다. 도커 컴포즈는 시스템 구축에 필요한 설정을 YAML 포맷으로 기재한 정의 파일을 이용해 전체 시스템을 일괄 실행 또는 일괄 종료 및 삭제할 수 있도록 도와주는 도구다. 정의 파일에는 컨테이너나 볼륨을 '어떠한 설정으로 만들지'에 대한 항목이 기재돼 있다. 그럼 이제 중요한 up 커맨드와 down 커맨드에 대해 알아보자. up 커맨드: docker run 커맨드와 비슷하다. 정의 파일에 기재된 내용대로 이미지를 내려받고 컨테이너를 생성 및 실행한다. 정의 파일에는 네트워크나.. Docker 2022. 8. 18. 여러 개의 컨테이너를 연동해 실행하기 이번 포스팅에서는 여러 개의 컨테이너를 다루는 연습 소재로서 워드프레스 사이트를 구축해볼 것이다. 데이터베이스로는 MySQL을 사용하며, 컨테이너는 워드프레스 공식 이미지를 사용할 것이다. 워드프레스 공식이미지는 워드프레스 프로그램 본체와 아파치, PHP 런타임을 함께 포함하고 있어서 매우 편리하다. 워드프레스 컨테이너와 MySQL 컨테이너가 있으면 워드 프레스를 사용할 수 있다. 단순하게 컨테이너를 두 개 만들기만 해서는 두 컨테이너가 연결되지 않는다. 따라서 가상 네트워크를 만들고 이 네트워크에 두 개의 컨테이너를 소속시켜 두 컨테이너를 연결한다. 실습에서 사용할 간단한 네트워크 커맨드를 확인하고 가자. 가상 네트워크 생성: docker network create 네트워크 이름 가상 네트워크 삭제: .. Docker 2022. 8. 17. 객체지향의 사실과 오해 5 ~ 7장 바로 시작하겠습니다. 5장. 책임과 메세지 요청(메시지)를 처리하기 위해 객체가 수행하는 행동을 책임이라고 한다. 즉 메서드란 메시지를 수신했을 때 책임을 수행하는 방법이다. 자율적인 객체란 스스로의 의지와 판단에 따라 각자 맡은 책임을 수행하는 객체이다. 객체지향 세계는 자율적인 객체들의 공동체다. 객체가 자율적이기 위해서는 객체에게 할당되는 책임의 수준 역시 자율적이어야 한다. 필자는 이 말이 의존성이 너무 많거나 강한 의존이 존재하면 안 좋다는 말로 이해했다. 자율적인 책임의 특징은 객체가 어떻게(how) 해야 하는가가 아니라 무엇(what)을 해야 하는가를 설명한다는 것이다. 다형성이란 서로 다른 유형의 객체가 동일한 메시지에 대해 서로 다르게 반응하는 것을 의미한다. 객체지향 패러다임이 강력한 .. 독서/객체지향의 사실과 오해 2022. 8. 17. 도커 시작하기 도커 환경을 구축하는 방법은 크게 3가지가 있다. 리눅스 컴퓨터에서 도커 사용하기 가상 머신이나 렌탈 환경에 도커를 설치하고 윈도우나 맥을 통해 사용하기 윈도우용/맥용 도커 사용하기 실습은 3번 방식으로 진행한다. 아래 링크에서 도커를 다운로드 받으면 된다. https://www.docker.com/ Home - Docker Learn how Atomist will help Docker meet the challenge of securing secure software supply chains for development teams. www.docker.com 필자의 실습환경은 애플 맥 M1이므로 Apple Chip을 다운로드 받았다. 실행을 시키면 다음과 같이 창이 뜬다. 도커 기초 실습 시작 바로 실.. Docker 2022. 8. 16. 객체지향의 사실과 오해 1 ~ 4장 현재 필자는 자바지기 박재성님이 운영하시는 NextStep 교육 웹사이트에서 수강한 자바 플레이 그라운드 with TDD, 클린코드 마지막 블랙잭 미션을 진행하고 있다. 미션을 해결하기 위해 도메인을 설계하고 있는데, 생각보다 많이 어렵다. 특히 인스턴스 변수 2개까지만 사용하라는 요구사항이 너무 어렵게 느껴져, 객체지향에 관한 보충 공부가 필요하다고 느껴졌다. 그래서 몇 달 전에 읽은 객체지향의 사실과 오해(줄여서 객사오라고 부르겠다)를 다시 읽었다. 이번 포스팅은 객사오 1장부터 4장까지 다시 읽으면서 기억하고 싶은 중요한 부분을 남기려고 한다. 그럼 바로 시작하겠다. 1장. 협력하는 객체들의 공동체 객체지향은 현실 세계를 모방하는 것이 아니다. 새로운 세계를 창조하는 것이다. 여러 객체가 동일한 역.. 독서/객체지향의 사실과 오해 2022. 8. 16. NextStep 자바 플레이 그라운드 with TDD, 클린코드 part 3 자바지기 박재성님이 운영하시는 NextStep 교육 웹사이트에서 수강한 자바 플레이 그라운드 with TDD, 클린코드에 대한 공부 기록을 남기려고 합니다. 이번 포스팅은 자바의 상속, 인터페이스에 관련된 좌표 계산기 미션에 관한 포스팅입니다. 강의를 통해 느낀 점 (피드백을 보기 전) 프로그래밍 요구사항에는 이전 미션과 크게 차이가 없었다. 기능요구사항도 좌표 입력 형식, 좌표 입력 값 범위 등 크게 특별하다고 느낀 부분은 없었다. 기억할 부분은 좌표가 2개면 직선 거리 계산, 좌표가 3개면 삼각형 넓이 계산, 좌표가 4개면 직사각형으로 계산하는 것이다. 직사각형인 경우에는 직사각형인지 validation을 해줘야 한다. 먼저 미션에서 필자는 enum을 적극적으로 사용하자는 생각을 했다. 도형의 좌표 .. 프로젝트 2022. 8. 14. 도커의 동작 원리 도커의 구조 일반적인 서버라면 운영체제 위에 프로그램이나 데이터가 직접 올라가겠지만 도커를 사용하는 경우에는 운영체제 위에 도커 엔진이 동작하고 그 위에서 컨테이너가 동작한다. 프로그램이나 데이터는 컨테이너 안에 위치한다. 모든 컨테이너는 리눅스 운영체제 비슷한 무언가가 들어 있다. 최소한의 컨테이너에도 리눅스 운영체제 비슷한 무언가가 들어 있다는 것이다. 빈 컨테이너라고 말해도 엄밀히 말하면 텅 빈 컨테이너는 아니다. 위 그림을 보면 도커 엔진 아래에는 운영체제가 있고, 컨테이너 속에 또 리눅스 운영체제(비슷한 것)이 있다. 이 부분이 도커의 가장 큰 특징 중 하나다. 본래 운영체제는 커널과 그 외의 주변 부분으로 구성된다. 주변 부분이 프로그램의 연락 내용을 커널에 전달하고, 커널이 하드웨어를 다룬다.. Docker 2022. 8. 12. 도커(Docker)란 무엇인가 천천히 도커에 대해 학습해보려고 합니다. 바로 시작하겠습니다. 도커(Docker)란? 도커를 정의한 다양한 자료들은 아래와 같이 얘기한다. 데이터 또는 프로그램을 격리시키는 기능을 제공하는 소프트웨어다. 도커는 컨테이너 기반의 오픈소스 가상화 플랫폼입니다. 어플리케이션을 패키징할 수 있는 도구. 도커는 다양한 프로그램과 데이터를 각각 독립된 환경에 격리하는 기능을 제공한다. 운영체제(비슷한 것)를 통째로 격리하는 기능이다. 도커는 주로 서버에 사용된다. 필자가 정리한 도커는 컨테이너를 활용해 애플리케이션을 독립된 환경에 격리해서 운영할 수 있는 기술이라고 정의했다. 컨테이너 먼저 위에서 언급한 컨테이너에 대해 알아보자. 컨테이너란 무엇일까? 컨테이너란 컨테이너 엔진위에서 동작하며 우리의 애플리케이션을 고.. Docker 2022. 8. 12. NextStep 자바 플레이 그라운드 with TDD, 클린코드 part 2 자바지기 박재성님이 운영하시는 NextStep 교육 웹사이트에서 수강한 자바 플레이 그라운드 with TDD, 클린코드에 대한 공부 기록을 남기려고 합니다. 이번 포스팅은 TDD를 사용해 자동차 경주 게임 구현 미션에 관한 포스팅입니다. 강의를 통해 느낀 점 (피드백을 보기 전) 우선 해당 단원에서 제시한 프로그래밍 요구사항은 다음과 같다. 자바 코드 컨벤션을 지키면서 프로그래밍한다. 기본적으로 Google Java Style Guide을 원칙으로 한다. 단, 들여쓰기는 '2 spaces'가 아닌 '4 spaces'로 한다. indent(인덴트, 들여쓰기) depth를 3이 넘지 않도록 구현한다. 2까지만 허용한다. 예를 들어 while문 안에 if문이 있으면 들여쓰기는 2이다. 힌트: indent(인덴.. 프로젝트 2022. 7. 31. 우아한 스프링 부트 공부 기록 스프링 부트 스프링 부트는 스프링을 쉽게 제공하기 위해 제공되는 툴이다. 참고로 스프링이란 자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크다. 스프링 부트가 제공하는 3가지 큰 영역 빌드 : 프로젝트 생성, 의존성 관리, 애플리케이션 패키징 및 실행 코딩 : 개발 툴 제공, 자동 설정, 외부 설정 배포 및 관리 : 도커 이미지 생성, Actuator, 스프링 부트 어드민 빌드 프로젝트 생성 https://start.spring.io/ 여기에서 스프링 프로젝트를 만든다. 들어가면 다음과 좌측면에 같은 화면이 나온다. 스냅샷(SNAPSHOT)은 개발 중인 버전. 가급적이면 사용하지 말자. M(Milestone) 버전 배포는 했지만 바뀔 수 있는 버전. 공부하지 않는 이상 사용하.. 개발/Spring Boot 2022. 7. 30. 이전 1 ··· 8 9 10 11 12 13 14 ··· 29 다음 반응형