Programming
-
12주차 과제: 애노테이션Programming/Java live study 2021. 2. 3. 16:21
12주차 과제: 애노테이션 · Issue #12 · whiteship/live-study 목표 자바의 애노테이션에 대해 학습하세요. 학습할 것 (필수) 애노테이션 정의하는 방법 @retention @target @documented 애노테이션 프로세서 마감일시 2021년 2월 6일 토요일 오후 1시까지. github.com 목표 자바의 애노테이션에 대해 학습하세요. 학습할 것 - 애노테이션 정의하는 방법 - @Retention - @Target - @Documented - 애노테이션 프로세서 1. 애노테이션이란? 참고 : honbabzone.com/java/java-anontation/ b-programmer.tistory.com/264 gowoonsori.site/java/annotation/ 1.1 ..
-
11주차 과제: EnumProgramming/Java live study 2021. 1. 27. 16:58
11주차 과제: Enum · Issue #11 · whiteship/live-study 목표 자바의 열거형에 대해 학습하세요. 학습할 것 (필수) enum 정의하는 방법 enum이 제공하는 메소드 (values()와 valueOf()) java.lang.Enum EnumSet 마감일시 2021년 1월 30일 토요일 오후 1시까지. github.com 목표 자바의 열거형에 대해 학습하세요. 학습할 것 - enum 정의하는 방법 - enum이 제공하는 메소드 (values()와 valueOf()) - java.lang.Enum - EnumSet 1. Enum 참고 : velog.io/@pop8682/Enum-27k067ns4a www.geeksforgeeks.org/enum-in-java/ wisdom-an..
-
10주차 과제: 멀티쓰레드 프로그래밍Programming/Java live study 2021. 1. 21. 00:42
10주차 과제: 멀티쓰레드 프로그래밍 · Issue #10 · whiteship/live-study 목표 자바의 멀티쓰레드 프로그래밍에 대해 학습하세요. 학습할 것 (필수) Thread 클래스와 Runnable 인터페이스 쓰레드의 상태 쓰레드의 우선순위 Main 쓰레드 동기화 데드락 마감일시 2021년 1월 23일 github.com 목표 자바의 멀티쓰레드 프로그래밍에 대해 학습하세요. 학습할 것 - Thread 클래스와 Runnable 인터페이스 - 쓰레드의 상태 - 쓰레드의 우선순위 - Main 쓰레드 - 동기화 - 데드락 0. 시작하기 전, 프로세스와 쓰레드 0.1 프로세스 Process 운영체제에서 실행중인 애플리케이션을 process라고 한다. 운영체제는 각각의 프로세스는 다른 프로세스에 접근이..
-
9주차 과제: 예외 처리Programming/Java live study 2021. 1. 13. 14:14
whiteship/live-study 온라인 스터디. Contribute to whiteship/live-study development by creating an account on GitHub. github.com 목표 자바의 예외 처리에 대해 학습하세요. 학습할 것 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 자바가 제공하는 예외 계층 구조 Exception과 Error의 차이는? RuntimeException과 RE가 아닌 것의 차이는? 커스텀한 예외 만드는 방법 1. 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 1.1 try-catch-finally Java에서 실행 도중에 발생하는 예외 처리를 위해 t..
-
[Spring] Singleton ContainerProgramming/Java 2021. 1. 8. 21:42
Singleton Pattern에 문제점 1. 싱글톤 패턴 구현을 위한 부가적인 코드가 많이 들어간다. 예를 들면 static final intance, private 생성자 등 2. 의존관계에 있어서 클라이언트가 구체 클래스 자체에 의존하게 된다. DIP(의존 관계 역전의 원칙)를 위반하게 된다. 클라이언트가 구체 클래스에 의존하기 때문에 OCP(개방-폐쇄 원칙) 또한 위반할 가능성이 높다. 3. 테스트 작성이 어렵다. 4. 내부 속성을 변경하거나 초기화하기 어렵다. 5. private 생성자이기 때문에 자식 클래스를 만들기 어렵다. 유연성 또한 떨어진다. Spring에서 사용하는 Spring container는 singleton pattern에 문제점을 해결하고 객체 인스턴스를 singleton으로 ..
-
8주차 과제: 인터페이스Programming/Java live study 2021. 1. 5. 14:51
whiteship/live-study 온라인 스터디. Contribute to whiteship/live-study development by creating an account on GitHub. github.com 목표 자바의 인터페이스에 대해 학습하세요. 학습할 것 인터페이스 정의하는 방법 인터페이스 구현하는 방법 인터페이스 레퍼런스를 통해 구현체를 사용하는 방법 인터페이스 상속 인터페이스의 기본 메소드 (Default Method), 자바 8 인터페이스의 static 메소드, 자바 8 인터페이스의 private 메소드, 자바 9 1. 인터페이스 정의하는 방법 1.1 인터페이스란? 서로 다른 하드웨어 장치들이 상호 접속하여 데이터를 주고받을 수 있는 규격을 의미한다. 이러한 규격은 컴퓨터로 예시를 ..
-
Java란?Programming/Java 2021. 1. 3. 22:41
Java란? Java Java는 1991년 썬 마이크로시스템즈의 제임스 고슬링과 다른 연구원들이 개발한 객체 지향 언어이다. 처음에는 가전제품 내에 탑재하여 동작하는 프로그램을 위해 개발되었다. 최근에 와서는 웹 애플리케이션 개발에 가장 많이 사용되고 있는 언어이다. 제임스 고슬링은 처음 이 언어의 이름을 오크 나무의 Oak라고 불렀지만 이미 Oak라는 상표가 등록되어 있었기 때문에 후에 Java로 개명한 후 출시하였다. 2009년 데이터베이스로 유명한 오라클 사는 선마이크로시스템즈를 인수하여 현재는 오라클에서 자바를 제공하고 있다. https://www.oracle.com/kr/java/ Java의 특징과 장점 1. 객체 지향 언어 캡슐화: 객체를 캡슐로 감싸서 내부를 보호하고 볼 수 없게한다. 외부와..
-
Singleton Pattern 싱글톤 패턴Programming/Java 2020. 12. 30. 21:49
Singleton Pattern singleton pattern은 클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 design pattern이다. 생성된 객체는 어디에서든지 참조 할 수 있다. 그렇기 때문에 멀티 스레드 환경에서 다수의 스레드가 해당 객체를 사용하기 때문에 Thread-safe가 보장되어야 한다. Java에서 singleton pattern을 생성하는 방법 다양하다. Eager initialization public class Singleton { private static final Singleton instance = new Singleton(); public static Singleton getInstance() { return instance; } private Singlet..