목록Java (24)
개발그래머
과제 과제0.JUnit5 학습하세요 인텔리J, 이클립스, VScode에서 Junit5로 테스트 코드 작성하는 방법에 익숙해질 것 이미 JUnit 알고 계신분들은 다른 것 아무거나! 더 자바, 테스트 강의도 있으니 참고하세요~ JUnit5 JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage JUnit Platform = 테스트를 실행해 주는 런처 제공, TestEngine API 정의 JUnit Jupiter = TestEngine API 구현체로 JUnit5 제공, 테스트를 작성하고 확장을 하기 위한 새로운 프로그래밍 모델과 확장 모델의 조합 JUnit Vintage = 하위 호환성을 위해 JUnit4와 JUnit3을 지원하는 TestEngine 구현체 ..
목표 자바가 제공하는 제어문을 학습 학습할 것 선택문 반복문 제어문(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&..
목표 자바 소스 파일(.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 List mergedList = new ArrayList(); mergedList.addAll(Arrays.asList(1, 2, 3, 4, 5)); 실행 1. Arrays.asList(1, 2, 3, 4, 5)에서 Integer []를 생성 2. Arrays.asList 는 List를 뒤에서 다시 생성 3. addAll 메서드에서 반복하여 Iterator를 이용해 List mergedList를 생성 예제 2 List mergedList = new ArrayList(); Collections.addAll(mergedList, 1, 2, 3, 4, 5); 실행 1. element(1, 2, 3, 4, 5)에서 Integer[]를 생성 2. addAll 메서드에서 반복하여 List mergedLis..