목록Java (15)
개발지식 먹는 하마 님의 블로그

Spring Framework의 모듈과 모듈 내의 각 요소에 대해 정리해보자!Spring Framework✅ 구조 IoC 컨테이너와 사용 이유에 대한 간략 설명!객체 생성 권한을 Contatiner에 위임하며 Service에 영향을 최소화하여 재사용성을 높인다 = IoC 제어의 역전 💡Core ContainerIoC 컨테이너를 통한 Bean 생명주기 관리!!!💎 BeansBean 정의, 등록, 생명주기, 의존성 주입을 담당한다.DI (의존성 주입)빈 스코프 설정@Autowired, @Qualifier 기반 의존성 관리Bean Factory는 싱글톤의 필요성을 제거하고 Configuration과 Dependency를 분리하게끔 도와준다.@Component, @Service 등의 Annotation을 통..
ENUM상수(한번 정해지면 변경할 수 없는 값)들의 집합final static 보다 안전하다가독성이 좋다== 으로 값을 비교하는 것이 가능하다런타임에 변경할 수 없다 📌ENUM도 객체이다내부적으로 class처럼 동작한다.다른 클래스에서 import해서 사용 가능java 파일 내에 독립적으로 존재 가능필드와 메서드, 생성자를 가질 수 있다.특정 클래스 내부에 정의하는 것도 가능하다. 📌values() & valueOf()values() : 모든 열거형 값 가져오기 List의 모든 원소를 불러오는 것과 유사하다.valueOf()문자열을 Enum 값으로 변환한다. 📌특정 값으로 Enum 찾기 get(index) 처럼 특정 값으로 Enum을 찾고 싶다면직접 정적 메서드를 만들어야 한다.public stat..
Pattern과 Matcher는 Java의 정규 표현식(Regax)을 처리하는 클래스이다.이를 사용하면 문자열을 좀 더 자유자재로 다룰 수 있다.Pattern 정규 표현식을 컴파일하여 Matcher 객체를 생성한다.한 번 생성되면 변경할 수 없다. compile(String regex) 정규식을 컴파일하여 Pattern 객체를 생성한다. compile(String regex, int flags) 특정 플래그와 함께 컴파일한다. matches(String regex, CharSequence input) 문자열이 정규식과 완전히 일치하는지 확인한다. split(CharSequence input) 문자열을 분리하여 배열로 반환한다. MatcherPattern 객체를 사용해 문자열과 패턴을 비교한다.matche..

JFrameJava Swings 라이브러리에서 지공하는 GUI 창을 생성하는 클래스이다.클래스 생성 시, superclass를 JFrame으로 지정한다.지정하지 못한 채 클래스 생성 시, 직접 extends JFrame을 입력한다. 화면 좌표계좌측 상단이 (0, 0)이고우측, 아래로 갈 수록 x, y값이 증가한다.창 설정 메서드메서드설명setTitle(String title)창의 제목을 설정setSize(int width, int height)창의 크기 설정 (가로, 세로)setResizable(boolean resizable)창 크기 조절 가능 여부 설정 (true: 가능, false: 고정)setVisible(boolean visible)창을 화면에 보이게 설정 (true: 표시, false: 숨김)..
람다 Lambda익명 클래스를 더 간결하게 표현하는 문법코드를 더 짧고 가독성 높게 작성할 수 있다.( 매개변수 ) -> { 실행 코드 }함수형 인터페이스 (추상 메서드가 하나만 존재하는 인터페이스) 에서만 사용할 수 있다.@FunctionalInterfaceinterface MyFunction { int calculate(int x, int y);}// 람다 표현식 사용MyFunction add = (a, b) -> a + b;MyFunction multiply = (a, b) -> a * b;System.out.println(add.calculate(5, 3)); // 출력: 8System.out.println(multiply.calculate(5, 3)); // 출력: 15스트림(strea..
제네릭 Genericc++의 Template과 동일한 역할을 한다.타입을 미리 지정하지 않고 유연하게 사용이 가능하다.예를 들어 두 개의 변수를 더하는 메서드를 작성한다고 할 때,제네릭을 사용하면 정수형 따로, 실수형 따로 설정할 필요가 없다는 것이 장점이다.public class GenericBox { private T item; public GenericBox(T item) { this.item = item; } public T getItem() { return this.item; }}public class Main { public static void main(String[] args) { GenericBox strGBox = n..

JDK (Java Development Kit)자바 프로그램을 개발할 때 필요한 개발 도구 모음JDK (Java Development Kit) ← Java 개발에 필요한 모든 것 포함 ├── JRE (Java Runtime Environment) ← Java 실행 환경 │ ├── JVM (Java Virtual Machine) ← 바이트코드 실행 │ ├── Java 라이브러리 (rt.jar 등) ← 필수 API 제공 (java.lang, java.util 등) │ ├── 클래스 로더 (Class Loader) ← .class 파일 로드 │ ├── Javac (Java Compiler) ← .java → .class 변환 ├── 기타 개발 도구 (디버거, Javadoc 생성기, JAR..

[ 네트워크 프로그래밍 ]컴퓨터 네트워크 : 컴퓨터들이 서로 데이터를 주고받을 수 있도록 연결된 조직네트워크 프로그래밍 : 네트워크를 통해 데이터를 주고 받는 프로그램 작성네트워크 상의 컴퓨터들이 서로 데이터를 주고 받을 때, 따라야 하는 미리 정해진 약속(규약)대표적으로 TCP/IP가 있다. (관련 내용은 따로 정리하도록 하겠다.IP 주소와 호스트 네임각 컴퓨터는 주소를 가지고 있어야 하고 이 때 IP 주소가 사용된다.숫자로만 구성된 IP는 불편하기 때문에 호스트 네임을 사용한다.호스트 이름 -> IP 주소로 변환 -> 해당 웹사이트에 요청 보내기포트와 소켓> 포트컴퓨터는 하나의 IP 주소를 가지지만, 데이터를 구분하기 위해 여러 개의 포트를 둔다.모든 서비스는각자 고유한 포트 번호가 할당된다.따라서..
[ Thread ]우리는 컴퓨터에서 여러 개의 작업을 동시에 진행하는 것이 가능하다. 한 개의 CPU가 작업을 잘게 쪼개어 모든 작업을 차례로 짧은 시간 동안 실행한다.CPU가 여러 개이거나 하나의 CPU에 여러 개의 코어가 있다면,각각의 CPU 또는 코어가 하나씩 작업을 진행할 수 있으므로 같은 시간대에 여러 개의 작업이 병렬적으로 실행될 수 있다.이때, 잘게 쪼개어지는 작업을 스레드(Thread)라고 한다.하나의 프로세스 내에 여러 개의 쓰레드가 존재할 수 있고, 스레드들이 동시에 실행될 수 있다.이를 멀티쓰레딩이라고 한다.나는 GPU기반 CUDA를 먼저 학습하고 사용했기 때문에 병렬프로그래밍에 익숙한 편이다.병렬프로그래밍을 공부하는 초기에 thread를 직원에 비유해서 이해했다.더보기더보기thre..
[ ArrayList ]Java에서 사용할 수 있는 동적 배열이다.ArrayList에 요소를 추가할수록 ArrayList의 크기가 자동으로 늘어난다.ArrayList 변수명 = new ArrayList(초기 배열 크기);ArrayList 변수명 = new ArrayList(); //타입 추론, 디폴트 배열 크기 10 지정ArrayList의 요소 타입으로 클래스만을 사용할 수 있다.초기 배열 크기를 따로 설정하지 않으면 디폴트로 10이 지정된다.배열의 요소 타입을 생략하면 컴파일러는 문맥으로 타입을 추론한다.기본적인 메소드설명add(요소)앞에서 부터 차례대로 비어있는 위치에 요소를 추가add(index, 요소)지정된 위치에 입력받은 요소를 삽입해당 위치와 그 뒤의 요소들이 한 자리씩 뒤로 물러난다.set(..