전체 글
-
MongoDB with Spring BootNoSQL/MongoDB 2023. 11. 13. 16:00
MongoDB 란? - 문서 기반 NoSQL 데이터베이스 - Json 형식으로 데이터를 저장한다. (BSON) SQL MongoDB Database Database Table Collection Column Field Row Document Foreign Key Sub Document(Reference) 설치 brew tap mongodb/brew brew update brew install mongodb-community@6.0 brew install mongodb-community-shell - 시작 brew services start mongodb-community@6.0 ㆍlocalhost:27017 에서 확인 가능 - 정지 brew services stop mongodb-community@6.0..
-
도커 정리DevOps/Docker 2023. 11. 10. 16:21
Docker 란? : 컨테이너 기반의 가상화 플랫폼 Container 란? : 응용 프로그램과 그 의존성을 격리된 환경에 묶어 동작할 수 있도록 하는 가상화 단위 Docker vs Virtual Machines Docker Container Virtual Machines - 운영체제와 시스템에 미치는 영향이 적다. - 빠르다. 최소한의 디스크 공간을 사용한다. - 공유, 재구축 및 배포하는 것이 매우 쉽다. - 앱에 필요한 모든 것을 캡슐화한다 - 운영 체제에 많은 영향을 미친다. - 속도가 느리고, 디스크 공간을 더 많이 차지하는 경향이 있다. - 공유, 재구축 및 배포가 도커보다 까다롭다. - 컴퓨터 전체를 캡슐화한다. (완전한 운영체제) * Docker Engine : 도커를 실행하는데 필요한 Li..
-
아이템33. 타입 안전 이종 컨테이너를 고려하라.Java/이펙티브 자바 2023. 11. 9. 15:22
핵심정리 - 타입 토큰을 사용한 타입 안전 이종 컨테이너 -타입 안전 이종 컨테이너: 한 타입의 객체만 담을 수 있는 컨테이너가 아니라 여러 다른 타입 (이종)을 담을 수 있는 타입 안전한 컨테이너. - 타입 토큰: String.class 또는 Class - 타입 안전 이종 컨테이너 구현 방법: 컨테이너가 아니라 "키"를 매개변수화 하라! public class Favorites { private Map .class 도 활용가능하다! public class Favorites2 { private final Map annotationType = null; // 비한정적 타입 토큰 try { annotationType = Class.forName(annotationTypeName); } catch (Excep..
-
EC2 + Docker + Docker hub 애플리케이션 배포DevOps/Deploy 실전 2023. 11. 6. 15:15
로컬에서 - 내 애플리케이션에 Dockerfile 생성 및 설정 - docker hub 로그인 docker login -u [username] - docker image 생성 및 확인 # 기본 커맨드 # docker build -t [dockerHub ID]/[이미지명]:[태그명] [DockerFile위치] # 태그 지정X 시 :latest 지정됨 $docker build --platform amd64 -t [dockerHub ID]/[이미지명] . docker images - docker hub push # Docker Hub Push #docker push [DockerHub ID]/[image 파일명] $docker push minits/devops_test - docker desktop 에서 확인..
-
AWS - EC2만으로 애플리케이션 배포DevOps/Deploy 실전 2023. 11. 6. 14:34
EC2 인스턴스 생성 mv ~/Downloads/devops_test.pem ~/.ssh/ chmod 600 devops_test.pem - 파일 이동 및 권한 변경 EC2 접속 ssh -i ~/.ssh/devops_test.pem ec2-user@퍼블릭 IPv4 주소 - ec2-user 는 기본 계정 AWS EC2에 파일 전송하기 - scp & rsync 사용해서 파일이동 가능 - scp를 사용 (로컬에서 원격으로 파일전송) scp -i ~/.ssh/devops_test.pem jar파일경로 ec2-user@퍼블릭IPv4주소:/home/ec2-user - ex) scp -i '펨키' '목적지주소' '이동시킬로컬주소' EC2에 애플리케이션 띄우기 sudo amazon-linux-extras install..
-
Jenkins and CI/CDDevOps/Jenkins 2023. 11. 6. 13:30
젠킨스란? - 자바로 작성된 오픈 소스 지속적 통합 및 지속적 제공 도구 - 소프트웨어 프로젝트를 구축하고, 제공하는 데 사용되는 자동화 서버 CI/CD 란? - 지속적 통합, 즉 CI는 모든 개발자의 작업 복사본을 공유된 메인라인으로 하루에 몇 번식 병합하는 소프트웨어 엔지니어링 작업 방식이다. - 지속적 제공, CD는 팀이 소프트웨어를 짧은 주기로 만들어 소프트웨어가 언제든지 안정적으로 출시할 수 있는 소프트웨어 엔지니어링 접근법입니다. - 젠킨스는 소프트웨어를 짧은 주기로 출시하는 데 큰 도움을 줄 수 있습니다. - 실제로 CI/CD는 자동화된 빌드와 테스트를 진행하여 작업을 검증하고 게시하는 것을 의미한다. docker 란? - 가장 보편적인 컨테이너 소프트웨어 - docker engine : 도..
-
아이템 32. 제네릭과 가변인수를 함께 쓸 때는 신중하라.Java/이펙티브 자바 2023. 11. 5. 21:10
핵심정리 - 제네릭 가변인수 배열에 값을 저장하는 것은 안전하지 않다. ㆍ힙 오염이 발생할 수 있다 (컴파일 경고 발생) ㆍ자바7에 추가된 @SafeVarargs 애노테이션을 사용할 수 있다. static void dangerous(List... stringLists) { // List[] myList = new ArrayList[10]; // 컴파일러가 허용하지 않는다! List intList = List.of(42); Object[] objects = stringLists; objects[0] = intList; // 힙 오염 발생 String s = stringLists[0].get(0); // ClassCastException } @SafeVarargs // 가변인자는 안전하게 사용되고 있다. s..
-
아이템31. 한정적 와일드카드를 사용해 API 유연성을 높이라Java/이펙티브 자바 2023. 10. 31. 16:32
핵심정리 - Chooser와 Union API 개선 PECS : Producer-Extends, Consumer-Super - Producer-Extends ㆍObject의 컬렉션 Number나 Integer를 넣을 수 있다. ㆍNumber의 컬렉션에 Integer를 넣을 수 있다. - Consumer-Super ㆍInteger의 컬렉션의 객체를 꺼내서 Number의 컬렉션에 담을 수 있다. ㆍNumber나 Integer의 컬렉션의 객체를 꺼내서 Object의 컬렉션에 담을 수 있다. - 예시) // 코드 31-2 E 생산자(producer) 매개변수에 와일드카드 타입 적용 (182쪽) public void pushAll(Iterable list, int i, int j) { list.set(i, lis..