목록전체 글 (65)
개발그래머
목표 자바가 제공하는 제어문을 학습 학습할 것 선택문 반복문 제어문(control flow statements) 원하는 결과를 얻기 위해 프로그램의 순차적인 흐름을 제어할 때 사용하는 명령문 선택문(조건문), 반복문 등 제어문에 속하는 명령문들은 중괄호({})로 둘러싸여 있으며 중괄호 영역을 블록(block)이라고 함 선택문(conditional statements) 주어진 조건식의 결과에 따라 별도의 명령을 수행하도록 제어하는 명령문 if 문 조건식의 결과가 참이면 주어진 명령문을 실행하며, 거짓이면 아무것도 실행하지 않음 실행될 명령문이 한 줄 뿐이라면 중괄호를 생략할 수 있음 int x = 10; if(x > 1){// 조건식 System.out.println("x는 1보다 큽니다.");// 조건식..
목표 자바가 제공하는 다양한 연산자를 학습 학습할 것 산술 연산자 비트 연산자 관계 연산자 논리 연산자 instanceof assignment(=) operator 화살표(->) 연산자 3항 연산자 연산자 우선 순위 (optional) Java 13. switch 연산자 산술 연산자 사칙연산을 다루는 연산자 가장 기본적이며 가장 많이 사용되는 연산자 두 개의 피연산자를 가지는 이항 연산자이며 피연산자들의 결합 방향은 왼쪽에서 오른쪽임 연산자 설명 + 왼쪽의 피연산자에 오른쪽의 피연산자를 더함 - 왼쪽의 피연산자에서 오른쪽의 피연산자를 뺌 * 왼쪽의 피연산자에 오른쪽의 피연산자를 곱함 / 왼쪽의 피연산자를 오른쪽의 피연산자로 나눔 % 왼쪽의 피연산자를 오른쪽의 피연산자로 나눈 후 그 나머지를 반환 int ..
목표 자바의 프리미티브 타입, 변수 그리고 배열을 사용하는 방법을 익힙니다 학습할 것 프리미티브 타입 종류와 값의 범위 그리고 기본 값 프리미티브 타입과 레퍼런스 타입 리터럴 변수 선언 및 초기화하는 방법 변수의 스코프와 라이프타임 타입 변환, 캐스팅 그리고 타입 프로모션 1차 및 2차 배열 선언하기 타입 추론, var 프리미티브 타입 종류와 값의 범위 그리고 기본 값 primitive type은 자바의 기본 타입들이며 8개가 존재함 프리미티브 타입은 필드 선언 시 초기화하지 않으면 기본 값으로 초기화됨 종류 타입 메모리 byte 범위 기본 값 논리형 boolean 1byte true or false false 정수형 byte 1byte -128 to 127 0 char 2byte '\u0000&..
발견 스프링 multiple datasource 설정을 하기 위해 스프링부트에서 제공하는 default datasource를 사용하지 않고 수동으로 등록해 주는 작업을 하였다.(참조 : https://www.baeldung.com/spring-data-jpa-multiple-databases) //datasource 설정 @Configuration @EnableJpaRepositories( basePackages = "com.**.repository", entityManagerFactoryRef = "originEntityManager", transactionManagerRef = "originTransactionManager" ) public class PersistenceOriginConfig { @..

목표 자바 소스 파일(.java)을 JVM으로 실행하는 과정 이해하기 컴파일타임과 런타임을 구분하기 학습할 것 JVM이란 무엇인가 컴파일 하는 방법 실행하는 방법 바이트코드란 무엇인가 JIT 컴파일러란 무엇이며 어떻게 동작하는지 JVM 구성 요소 JDK와 JRE의 차이 JVM이란 무엇인가 Java Virtual Machine 운영체제와 하드웨어에 독립적으로 동작하며 자바 코드를 실행하기 위해 필요한 라이브러리 및 기능을 제공함 자바 바이트코드를 실행하는 역할을 수행함 컴파일 하는 방법 javac(java compiler)를 사용하여 컴파일 일반적으로 상위버전으로 컴파일된 클래스파일은 하위버전에서 동작하지 않지만 컴파일 시 -target 옵션을 설정하여 호환 가능하게 만들 수 있음 버전이 올라갈수록 jav..
프록시 패턴(Proxy Pattern) 특정 객체에 대한 접근을 제어하거나 기능을 추가할 수 있는 패턴 클래스의 사용을 중간 대리인(proxy)을 거쳐 사용함 접근 제어, 초기화 지연, lazy loading, logging, cache 등을 사용하여 성능적인 이점을 취함 장점 기존 코드 변경 없이 새로운 기능 추가 가능(OCP) 기존 코드는 해야 하는 일만 유지(SRP) 기능 추가 및 초기화 지연 등으로 다양하게 활용 단점 코드 복잡도 증가 예제 코드 public class GameService { public void startGame() { System.out.println("이 자리에 오신 여러분을 진심으로 환영합니다."); } } public class Client { public static ..
싱글톤 패턴(Singleton Pattern) 인스턴스를 오직 한개만 제공하는 클래스 시스템 런타임, 환경 세팅에 대한 정보 등, 인스턴스가 여러개 일 때 문제가 생길 수 있는 경우 사용 naive public class Settings { private static Settings instance; private Settings() {} public static Settings getInstance() { if (instance == null) { instance = new Settings(); } return instance; } } naive(단순)하게 고려한 싱글톤 코드 private 생성자를 통해 new 생성자의 사용을 막음 public static method를 통해 객체를 생성하게 만듬 mu..

1. 도커 허브에 도커 이미지 만들어서 push 하기 -> docker hub 확인 docker tag cicd-project-ansible dyghks7102/cicd-project-ansible // 기존 이미지에 태그 삽입 docker login //나의 도커허브 로그인 docker push dyghks7102/cicd-project-ansible 2. 도커 허브에 이미지 푸쉬하는 playbook 생성 (create-cicd-project-image-playbook.yml) vi create-cicd-project-image-playbook.yml - hosts: all # become: true tasks: - name: create a docker image with deployed waf fi..