본문 바로가기

TIL/Java | Spring Boot32

[Java] 스터디 7주차_쓰레드 (Thread) 쓰레드와 관련한 내용은 지난 학기 운영체제를 수강하면서 배우게 되었는데, 중간고사 이후로 조금 까먹기도 했고 쓰레드 관련 프로그래밍은 해본 적이 없어서 이번 기회를 통해서 정리할 수 있었다. 1. 프로세스와 쓰레드 프로세스 : 실행 중인 프로그램 (프로그램 수행에 필요한 데이터나 메모리 등의 자원, 쓰레드로 구성되어 있음) 쓰레드 : 프로세스의 자원을 이용하여 실제로 작업을 수행하는 단위 모든 프로세스에는 최소 하나 이상의 쓰레드가 존재하며 둘 이상의 쓰레드가 존재하는 것을 멀티 쓰레드 프로세스라고 한다. 쓰레드가 작업을 수행하는데 개별적인 메모리 공간(호출스택)을 필요로 하기 때문에 프로세스의 메모리 한계에 따라 생성할 수 있는 쓰레드의 수가 결정된다. (실제로는 메모리의 한계가 올 정도로 많은 쓰레드.. 2022. 7. 2.
[Java] 스터디 6주차_Generics, enums, annotation 1. Generics 1.1 지네릭스 (Generics) Generics : 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입체크를 해주는 기능. 객체의 타입을 컴파일 시에 체크하기 때문에 객체의 타입 안정성을 높인다. 의도하지 않은 타입의 객체가 저장되는 것을 막고 저장된 객체를 꺼내올 때 원래의 타입과 다른 타입으로 잘못 형 변환되어 발생할 수 있는 오류를 줄여준다. 형변환의 번거로움이 줄어든다. 1.2 지네릭 클래스의 선언 클래스와 메서드에 선언할 수 있다. 클래스에 선언하는 지네릭 타입 class Box { Object item; void setItem(Object Item) {this.item = item;} Object getItem() {return item;} } -.. 2022. 5. 29.
[Java] 스터디 5주차_컬렉션 프레임웍 1. 컬렉션 프레임워크 컬렉션 : 컬렉션은 다수의 데이터, 즉 데이터 그룹을 의미하고 프레임웍은 표준화된 프로그래밍 방식을 의미 서로 다른 각자의 방식으로 처리해야 했던 Vector, Hashtable, Properties와 같은 컬렉션 클래스들을 보완하기 위해서 모든 컬렉션 클래스를 표준화된 방식으로 다룰 수 있도록 체계화되었다. 1.1 컬렉션 프레임워크의 핵심 인터페이스 List : 순서가 있는 데이터의 집합, 데이터의 중복 허용 Set : 순서를 유지하지 않는 데이터의 집합, 데이터의 중복 불허 Map : 키와 값의 쌍으로 이루어진 데이터의 집합. 순서는 유지되지 않으며 키는 중복을 허용하지 않음. List와 Set은 서로 많은 공통 부분이 있어서 공통된 부분을 다시 뽑아 Collection 인터페.. 2022. 5. 22.
[Java] 스터디 4주차_java.lang 패키지와 날짜, 시간, 형식화 1.1 Object 클래스 Object 클래스는 모든 클래스의 최고 조상이기 때문에 Object 클래스의 멤버들은 모든 클래스에서 바로 사용이 가능 Object 클래스의 메서드 protected Object clone() : 객체 자신의 복사본을 반환 public boolean equals(Object obj) : 객체 자신과 객체 obj가 같은 객체인지 알려준다 (같으면 true / value아니고 주소값이 같아야함) public Class getClass() : 객체 자신의 클래스 정보를 담고 있는 Class 인스턴스를 반환한다. public int hashCode() : 객체 자신의 해시코드를 반환한다 public String toString() : 객체 자신의 정보를 문자열로 반환 public v.. 2022. 5. 15.
[Java] 스터디 3주차_예외 처리 (exception handling) 1. 예외처리 1.1 프로그램 오류 에러 (오류) : 프로그램이 실행 중 어떤 원인에 의해서 오작동을 하거나 비정상적으로 종료되는 원인 에러는 발생 시점에 따라 '컴파일 에러' 또는 '런타임 에러'로 나눌 수 있다. 컴파일 에러 : 컴파일 시에 발생하는 에러 런타임 에러 : 실행 시에 발생하는 에러 논리적 에러 : 실행은 되지만 의도와 다르게 동작하는 것 컴파일을 에러 없이 성공적으로 마쳤다고 해도 프로그램 실행 시에도 에러가 발생할 수 있다. 컴파일러를 통해 소스 코드의 기본적인 사항은 컴파일 시에 모두 걸러 줄 수 있지만 실행 도중에 발생할 수 있는 잠재적인 오류까지는 검사할 수 없다. 이런 런타임 에러를 방지하기 위해서 프로그램의 실행 도중 발생할 수 있는 모든 경우의 수를 고려하여 대비가 필요하다.. 2022. 5. 6.
[Java] 스터디 2주차_객체지향프로그래밍2 (2) - 추상클래스, 인터페이스, 내부 클래스 이전 글 확인하기 : https://challenging.tistory.com/99 6. 추상클래스 6.1 추상클래스란? 추상클래스는 추상메서드를 포함하고 있다는 것을 제외하고는 일반클래스와 다르지 않다. 동일하게 생성자와 멤버변수, 메서드를 가질 수 있다. 추상클래스는 상속을 통해서 구현해줘야 하고 그 자체로는 클래스로서의 역할을 다 하지 못한다. 6.2 추상메서드 추상메서드 : 선언부만 작성하고 구현부는 작성하지 않은 채로 남겨 둔 것. 미완성 메서드 /* 주석을 통해 어떤 기능을 수행할 목적으로 작성하였는지 설명 */ abstract 리턴타입 메서드이름(); 메서드를 사용하는 쪽에서는 메서드가 실제로 어떻게 구현되어 있는지 몰라도 메서드의 이름과 매개변수, 리턴타입 (= 선언부)만 알고 있으면 되므.. 2022. 5. 1.