분류 전체보기 58

자바 Object 클래스

☕️ 김영한의 실전 자바 - 중급 1편 을 듣고 작성하는 복습 블로그 입니다. 1. java.lang 패키지java.lang 패키지는 자바가 기본으로 제공하는 라이브러리의 가장 기본자바 언어를 이루는 가장 기본이 되는 클래스들을 보관하는 패키지java.lang 패키지의 대표적인 클래스들로는 Object (모든 자바 객체의 부모 클래스) , String (문자열), Integer (래퍼타입), Class (클래스 메타 정보) , System (시스템 관련 기본 기능) 들이 있다java.lang 패키지에 있는 클래스들은 모두 자바 애플리케이션에 자동으로 임포트되기 때문에 임포트 구문을 따로 사용하지 않아도 된다// import 구문 미사용 가능public class LangMain { public s..

자바 래퍼, Class 총정리

☕️ 김영한의 실전 자바 - 중급 1편 을 듣고 작성하는 복습 블로그 입니다. 0. 배경자바를 처음 배울 때 int, double 과 같은 기본형을 먼저 배운다하지만 기본형에는 명확한 한계가 존재한다그러면 이런 한계를 어떻게 해결해야할까 !!!?1. 기본형의 한계기본형은 크게 두가지의 한계가 존재한다. 객체가 아님 🙅‍♀️ 기본형 데이터는 객체가 아니다자바는 객체지향 프로그래밍 언어인데, 객체 지향 프로그래밍의 장점을 살릴 수 없다null 값을 가지지 못함 🙅‍♀️기본형 데이터 타입은 null 값을 가질 수 없다데이터가 없음이라는 상태를 표현하려면 int 의 경우 -1 이나 0 등을 사용해야 한다이러한 한계를 벗어나기 위해서 직접 클래스를 만들어보자 !!!2. 직접 기본형 클래스 만들기단순하게 기본..

자바 예외처리 총정리

☕️ 김영한의 실전 자바 - 중급 1편 을 듣고 작성하는 복습 블로그 입니다. 0. 배경프로그램이 항상 정상 동작되지만은 않는다거의 대부분의 프로그램은 오류가 발생하는데 이런 오류를 어떻게 처리하느냐에 따라 개발자의 실력이 결정된다오늘은 이런 오류를 처리하는 예외처리에 대해서 알아보자 1. 예외 계층자바는 프로그램 실행 중에 발생할 수 있는 예상치 못한 상황을 처리하기 위한 메커니즘을 제공한다.이것이 바로 예외인데 프로그램의 안전성과 신뢰성을 높이는데 아주 중요한 역할을 한다.자바의 예외 계층은 위와 같다Object : 예외도 객체이기 때문에 최상위 부모엔 Object 가 있다Throwable : 최상위 예외Erorr : 애플리케이션에서 복구가 불가능한 시스템 예외다. 해결할 수 없기 때문에 개발자가 ..

자바 열거형 ENUM 총정리

☕️ 김영한의 실전 자바 - 중급 1편 을 듣고 작성하는 복습 블로그 입니다. 0. 배경상태나 정해진 값을 나타내기 위해서 자바에서 enum 을 많이 사용한다이번엔 enum 이 생겨나게 된 이유부터 어떻게 사용하면 되는지 알아보자 !!1. 고객 등급 구현하기고객을 3개의 등급으로 나누고, 상품을 구매할 때 등급별로 할인을 적용하려고 한다 🌱 BASIC 등급 → 10% 할인⚜️ GOLD → 20% 할인💎 DIAMOND → 30% 할인 가장 먼저 떠올릴 수 있는 구현 방법은 String 을 사용하는 것이다. 1-1. String 사용public int discount(String grade, int price) { int discountPercent = 0; if (grade.equals(..

자바 중첩 클래스와 내부 클래스

☕️ 김영한의 실전 자바 - 중급 1편 을 듣고 작성하는 복습 블로그 입니다. 0. 배경클래스를 그냥 단일 클래스로 생성해서 사용할 수 있지만, 중첩해서 쓰거나 내부에 쓰거나 다양한 방식으로도 활용할 수 있다 다양하게 활용되는 클래스 중 중첩 클래스와 내부 클래스에 대해서 알아보자1. 중첩 클래스💡 클래스 안에 클래스를 중첩해서 사용하는 것class Outer { class Nested {...}}중첩 클래스는 중첩이라는 말에서 알 수 있듯이 클래스 안에 클래스를 넣어서 사용하는 것을 의미한다이는 클래스를 정의하는 위치에 따라서 분류가 달라진다총 4가지가 있고, 인스턴스 소속에 따라 크게 2가지로 분류할 수 있다인스턴스 소속중첩 클래스 이름설명전혀 다른 인스턴스정적 중첩 클래스 (static nest..

자바 날짜와 시간 라이브러리 총정리

☕️ 김영한의 실전 자바 - 중급 1편 을 듣고 작성하는 복습 블로그 입니다. 0. 배경프로그램을 개발하다보면 📅 날짜와 🕰️ 시간 관련된 기능을 구현해야할 일이 자주 생긴다. 예를 들어서 💰 정산 프로그램을 개발할 경우 특정 시점 사이의 정산 데이터를 가져와야 하고👆일반적인 데이터 조회에서도 사용자가 원하는 날짜를 지정해서 검색할 수 있어야 한다. 자바에는 날짜와 시간 관련된 여러 라이브러리가 존재하는데, 이번에 라이브러리에 대해서 알아보자 1. 날짜와 시간 라이브러리가 필요한 이유💬 "굳이 날짜와 시간 라이브러리가 필요할까 ?" 💬 "그냥 내가 하나하나 계산하면 되지 않을까 ?" 라고 생각할 수 있다.하지만, 날짜와 시간을 그냥 계산하기엔 고려해야할 요소들이 많다. 1. 🌎 윤년지구가..

(17) Argo Rollouts 를 이용한 배포 - Blue/Green, Canary

⚓ 쿠버네티스 어나더 클래스 (지상편) - Spring 1, 2 을 듣고 작성하는 복습 블로그 입니다. 1. Blue/Green 배포배포 시 롤백이 빠름배포 중 v1, v2 간의 동시 호출 없음Script 를 통해 자동 배포 가능v2 에 과도한 트래픽 유입시 문제 발생Rollouts 를 사용한 Blue/Green 배포Service 를 두 개 지정Service (active) : 실제 서비스 사용자가 들어오는 액티브 서비스 , Service(preview) : 업그레이드 중에 v2 버전으로만 들어가볼 수 있는 프리뷰 서비스Rollout은 먼저 ReplicaSet을 만든다 → Pod 생성두 Service 는 Pod 와 연결되어서 트래픽을 전달해준다배포 단계Rollout 에서 태그를 변경싱크를하거나 Kuber..

(16) ArgoCD Image Updater 를 이용한 이미지 자동배포

⚓ 쿠버네티스 어나더 클래스 (지상편) - Spring 1, 2 을 듣고 작성하는 복습 블로그 입니다. 1. 배포를 해야하는 상황1. 리소스 스펙 변경 → 수작업 필요Devops 엔지니어가 yaml 파일을 수정해서 git에 커밋배포잡을 실행쿠버네티스에 반영=> ArgoCD 가 변경 감지를 해줘서 쿠버네티스에 자동 배포 2. App 버전 업그레이드 (컨테이너 이미지 변경) → 자동화 가능개발자가 소스 빌드를 실행하면 Jar 파일 생성컨테이너 빌드 후 도커 허브에 이미지를 업로드배포 실행helm 에서 --set image.tage=1.0.0-202301, 102394 사용시 yaml 파일 수정 없이 자동 배포 가능=> App 버전 업그레이드는 구현이 조금 복잡 ⇒ ArgoCD Image Updater 사용 ..

(15) ArgoCD 아키텍처, Argo Apps 설치 및 배포 해보기

⚓ 쿠버네티스 어나더 클래스 (지상편) - Spring 1, 2 을 듣고 작성하는 복습 블로그 입니다. 1. ArgoCD 아키텍처argocdk8s 전용 배포 툴 (with git)image updater컨테이너 이미지 변경 감지 (추가기능)rollouts고급 배포 지원events이벤트 버스 아키텍쳐 도구 (카프카)메인 통로 역할workflowairflow 나 kubeflow 같은 매니지먼트 도구실행 순서도kube-apiserver 가 트래픽을 받아서 관련있는 곳들에 전달Server : API Server 및 Dashboard 역할, Port를 통해 UI 로 접근하거나 argocd CLI 로 접근Repo Server : Git 연결 및 배포할 yaml 매니패스트 생성Application Controller..

(14) Helm과 Kustomize 비교하며 사용-2

⚓ 쿠버네티스 어나더 클래스 (지상편) - Spring 1, 2 을 듣고 작성하는 복습 블로그 입니다. 패키지 구조 비교 및 배포하기1. 다양한 배포 환경을 위한 Kustomize 배포하기 1-1. 아이템 생성name : 2222-deploy-kustomizecopy from 2221-deploy-helm1-2. 옵션 수정Spare Checkout paths > Path : 2222Script Path : 2222/Jekinsfile1-3. 배포 시작에서 Abort 누르기최초 실행시엔 매개변수 입력 버튼이 안나오고, [dev / qa / prod] 중 dev가 적용된다스크립트에 있는데 처음에 실행할 때는 젠킨스 파이프라인이 모르기 때문에 그냥 dev로 적용1-3-2. 다시 빌드하면 PROFILE 을 선택..