
Java 개발 환경 구축
Java 변수와 자료형
항과 연산자 1. 항 연산에 사용되는 값 단항연산 이항연산 삼항연산 2. 연산자 연산에 사용되는 기호 1) 대입연산자(=) 연산의 우선순위가 가장 낮다. 2) 부호연산자(+ -) 부호를 나타내는 단항 연산자로 사용 + - : 부호반전, 양수→음수, 음수→양수 3) 산술연산자(+ - * / %) 사칙 연산에 사용하는 연산자 * / % > + - ...
조건문 1. if 2. else 3. esle if 선택문 switch case break default 키워드는 정수, int, char, ENUM상수, 문자열상수 반복문 1. while 2. do ~ while 3. for break : 반복 중단 ontinue : 반복 건너뛰기 - 현재 반복을 중단, 새로 시작 1,3,5,7,9,11...
백준 코딩테스트에서 반복문을 사용하다가아래 코드에서 i의 값이 출력이 안된다는 것을 확인했다.분명히 반복문에서 int i = 1로 초기화 해주었는데반복문안에서는 i의 값이 출력되지만, 반복문을 빠져나와서는 i의 값이 출력을 할 수 없었다.....그 이류를 찾기위해 구글
같은 자료형(공간의 크기가 동일)물리적인 나열 구조(순차 자료 구조)인덱스 연산자\[] : 배열 공간의 위치를 계산해 주는 연산자선언과 동시에 초기화 참고)기본 자료형 : 초기값 정수형 자료형(byte, short, int, long) -> 0실수형 자료형(float,
객체(Object) : 사물, 대상속성 : 정의, 상태 -> 변수행위 : 기능 → 함수 클래스 -> 객체를 만들기 위한 설계 명세서 OrderInfo -> Order + Info클래스에 변수 정의 -> 멤버 변수(정의)클래스에 정의된 함수 -> 메서드변수.속성명변수
1) 함수이름2) 매개변수3) return 예약어와 반환형메모리(임시메모리) : 함수가 연산을 수행할때만 공간을 할당, 작업 완료(return) → 제거가장 마지막에 투입된 자료 : 가장 먼저 나오고가장 처음에 투입된 자료 : 가장 나중에 나온다.1) 함수가 호출되면
클래스명과 동일한 명칭의 함수 객체를 생성해 주는 역할 데이터 영역 메모리(코드 & 상수 영역 메모리)클래스 로더 -> 클래스 파일 -> 데이터 영역 로드 클래스에 생성자 메서드가 정의된 것이 없으면 -> 컴파일러가 자동 추가생성자 오버로드 : 클래스에서 생성자가 두개
자바 프로그램이 실행되면 JVM(자바 가상 머신)은 OS로부터 메모리를 할당받고, 그 메모리를 용도에 따라서 여러 영역으로 나누어 관리를 한다.JVM의 메모리 공간(Runtime Data Area)은 크게 Method(Static), Stack, Heap 으로 구분되고
설정 - 에디터 - 자동가져오기모호하지 않은 import 문 즉시추가
멤버 변수에 직접 값을 대입을 지양해야한다.why? 통제가 불가능하기 때문에!(멤버 변수의 접근 제어자(private))멤버 변수의 값을 확인할 수 있는 접근 가능한 메서드 추가public : 모든 패키지에서 접근이 가능protected : 동일 패키지에서 접근 가능(
모든메서드에 존재하는 지역변수객체의 자원을 접근하기 위해서 객체의 주소값이 담겨있음.객체의 자원을 소비하기위한 수단지역변수 \- 생성된 객체의 주소값 \- 인스턴스 메서드의 지역변수 \- 메서드 내부에서 객체의 자원을 접근하기 위한 주소값메서드 : this(
정적메모리 \- 데이터영역변하지 않는 데이터코드, 상수 영역애플리케이션 시작시 생성, 종료시 제거동적메모리 \- 스택힙정적변수처음 로드 될때 부터 데이터영역(정적메모리)에 할당(힙에 존재하지않음)객체 생성과 상관없이 호출 가능데이터 영역에 할당, 같은 자원을 사용하
상속 1. 상속 B클래스는 A클래스를 상속받으면 B클래스는 A클래스의 메서드를 사용할 수 있습니다. 객체 지향 프로그램은 유지보수하기 편하고 프로그램을 수정하거나 새로운 내용을 추가하는 것이 유연한데, 그 기반이 되는 기술이 상속 2. 클래스의 상속 자식클래스가 부모
Parent와 Child의 관계를 생각해보면, 개념 면에서 보면 상위 클래스인 Parent가 Child보다 일반적인 개념기능 면에서 보면 Child가 Parent보다 기능 이 더 많습니다.왜냐하면 상속받은 클래스는 상위 클래스의 기능을 모두 사용할 수 있고 추가로 많은
instancce : 실체 - 실제로 존재한다.클래스라고 하는 객체의 정의(존재x) → new → 힙공간에 존재(생성된 객체)instanceof : 객체의 생성된 출처를 확인하는 연산자c instanceof C : c라고 하는 참조변수가 가리키는 객체의 출처가 C클래스
Parent와 Child의 관계를 생각해보면, 개념 면에서 보면 상위 클래스인 Parent가 Child보다 일반적인 개념기능 면에서 보면 Child가 Parent보다 기능 이 더 많습니다.왜냐하면 상속받은 클래스는 상위 클래스의 기능을 모두 사용할 수 있고 추가로 많은
추상적 : 어떤일을 해야할지 정해지지 않음.구체적 : 어떤 일을 해야할지 명확하게 정의구성 요소 중에서 정해지지 않은 클래스함수가 수행할 내용이 결정되지 않은 클래스함수의 정의만 있는 클래스4\. final
설계라는 특수한 목적의 클래스추상 메서드만 정의하기 위한 클래스일반 메서드로 정의하면 오류가 발생개발시 필요한 설계 가이드 라인public abstract는 컴파일러가 자동으로 추가해주기 떄문에 생략가능implements : 구현하다여러 인터페이스도 가능인터페이스에서
생성자를 정의하지 않은 경우모든 생성자 메서드의 첫줄참조변수
클래스 안에 클래스가 정의된 형식멤버 변수, 멤버 메서드와 비슷한 성격외부 클래스의 객체 생성 이후 접근 가능한 클래스외부 내부 변수 접근내부클래스에서는 외부클래스를 직접적으로 접근가능하다.내부에 외부의 클래스에 존재하는 인스턴스변수와 변수명이 같은 경우 내부클래스의
오류(Error) : 시스템의 오류, JVM 오류(통제 불가) 예외(Exception) : 코드 상의 오류(통제 가능한 오류)예외가 발생하면 프로그램 중단! -> 프로그램 중단을 막기 위한 조치 예외처리의 목적 : 예외가 발생시 적절한 조치 -> 서비스 중단을 막는 것
기본적으로 많이 사용하는 클래스들이 포함예) String java.lang.String 컴파일러가 패키지명 바로 아래쪽 import java.lang.\*; 추가 lang 패키지의 모든 클래스는 그냥 사용 가능 모든 클래스의 상위 클래스 상속 명시 X -> extend
유용한 클래스1\. java.lang.Math 클래스2\. java.util.Objects 클래스3\. java.util.Random 클래스4\. java.util.Scanner 클래스5\. java.util.StringTokenizer 클래스
Java-정규표현식
Java enums
타입 안정성 보장형변환의 번거로움 해결다양한 자료형을 수용 -> Object 클래스 사용 단점 1) 타입 안정성 X 2) 형변환의 번거로움 컴파일시 타입 매개변수는 제거된 이후 → Object → 객체가 생성될때 타입 매개변수의 자료형으로 형변환 (타입은 객

컬렉션(Collections) - 데이터 군집, 자료프레임워크(Framework) : 표준화된 설계 데이터 군을 다루는데 필요한 클래스를 표준화서 설계 순차 자료 구조에 대한 설계순서가 있는 자료, 예) 배열특정 순서에 추가, 제거, 변경 등의 매개변수가 정의된 메서드
1) 매개변수가 X, 반환값 1개 Supplier<T> : T get()2) 매개변수가 1개, 반환값 0개 Consumer<T> : void accept(T t)3) 매개변수가 1개 반환값도 1개 Function<T,R> : R apply(
세부정보활동스트림(Stream)1\. 스트림이란? java.util.stream스트림만들기1) 컬렉션 Collection Stream stream() 2) 배열 Arrays static stream(....)3) Stream .of(T... )스트림의 연
JDK8 null에 대한 다양한 처리 방법을 제공하는 클래스 Wrapper 클래스 static Optional<T> of(T t) : t가 null이면 오류 발생 static Optional<T> ofNullable(T t) : t가 null이어도 오류 발
설계가 빈약static Calendar getInstance()서기 달력외에 다른 체계 달력(불기)을 지역화 설정에 따라 객체 생성 int get(날짜 시간 필드) : 날짜, 시간 조회void set(날짜 시간 필드, 값) : 날짜, 시간 변경 날짜 시간 변경시 원
java.text 패키지 : 형식화 관련 편의 클래스 모음숫자 👉 형식화된 문자열10000 👉 10,000format(...) : 숫자 👉 형식화된 문자열0패턴 : 없어도 0출력
java.io 패키지 Input/Output 입력 / 출력 컴퓨터 내부 또는 외부와 프로그램간의 데이터를 주고받는 것 데이터가 이동하는 통로 입력 통로(입력 스트림)출력 통로(출력 스트림)데이터 크기가 바이트 단위1바이트씩 읽어오는 스트림InputStream : 추

프로세스와 쓰레드 1. 개념 >1) 실행 중인 프로그램(program) 2) 프로그램을 수행하는 데 필요한 데이터와 메모리등의 자원 그리고 쓰레드로 구성 3) 프로세스의 자원을 이용해서 실제로 작업을 수행하는 것이 쓰레드이다 4) 모든 프로세스에는 최소한 하나 이상의
빌드, 의존성(필요한 라이브러리 jar(Java Archive))관리, 배포, 테스트 툴 자바 설치 O환경 변수 JAVA_HOME버전 표기법 1 .18. 30(Major) (Minor) (Patch)
Gradle 설정파일 build.gradle 👉 그루비, 코틀린 : DSL 특화 언어 DSL(Domain Spefifc Language) Domain : 전문가 영역 설정영역 람다식 1. 명령어 1) 버전 확인 2) 프로젝트 생성 gradle init [--
JDBC(Java DataBase Connectivity) APIAPI(Application Programming Interface)자바 데이터베이스 연결 기술 명세서 - 인터페이스로 구성구현체는 각 DB업체가 구성(데이터베이스 드라이버)java.sql 패키지 - JD
Class.forNAme("oracle.jdbc.driver.OracleDriver");1) 정적 SQL ConnectionStatement createStatement()ResultSet executeQuery(String sql) : 조회(SELECT)ResultS

mybatis3.xxSqlSessionFactory👉 SqlSession 객체 생성insert(...)delete(...)update(...)List<T> selctList(...)T selectOne(...)5) bind
Mybatis implementation 'org.mybatis:mybatis:3.5.16' >마이바티스는 자바 퍼시스턴스 프레임워크의 하나로 XML 서술자나 애너테이션을 사용하여 저장 프로시저나 SQL 문으로 객체들을 연결시킨다. 마이바티스는 아파치 라이선스 2.0으
비즈니스 로직 구현Service : 기능 ex) 회원가입 기능 👉 JoinServiceDTO(Data Transfer Object) : 데이터 전달 목적의 객체Validator : 데이터 검증DAO(Data Access Object) : 데이터 접근 객체(DB처리)
하나의 클래스는 하나의 책임(기능, 서비스)을 가짐확장에는 열려있고, 변화에는 닫혀 있음디자인패턴 : 전략패턴상속(extend)은 확장에 불리구성이 확장에 유리직접 구성 객체를 생성 ❌ 👉 통제 불가통제를 위해서 구성 객체의 주입 개방 👉 생성자 매개변수(외존 관계

사용자가 입력한 메뉴 번호, 문구 👉 해당하는 컨트롤러로 연결각 컨트롤러의 프롬포트에서 각 controller의 객체를 생성하고, controller의 run()을 호출함으로써 컨트롤러를 실행시켜줌컨트롤러의 공통 기능을 구현메인 컨트롤러메뉴 상수의 값을 가지고 각 컨
테스트1) 단위 테스트 : 기능 단위 별 테스트 (Junit5)2) 통합 테스트 : 모든 기능을 통합, 유기적으로 잘 동작하는지 테스트junit-jupiter - dependencymaven-surefir-plugin - plugin1) 테스트로 사용할 클래스를 만들고
1) @EnabledOnOs, @DisabledOnOs2) @EnabledOnJre, @DisabledOnJre3) @EnabledIfSystemProperty, @DisabledIfSystemProperty4) @EnabledIfEnvironmentVariable,
모의 객체 생성, 검증, 스텁을 지원하는 프레임워크스텁(stub) : 가짜 데이터servlet.api\-javax.servlet-api / java ee 8, javax\`compileOnly 'jakarta.servlet:jakarta.servlet-api:6.0.0