전체 글 85

11주차 과제: Enum

11주차 과제: Enum 목표 자바의 열거형에 대해 학습하세요. 학습할 것 (필수) enum 정의하는 방법 enum이 제공하는 메소드 (values()와 valueOf()) java.lang.Enum EnumSet enum 정의하는 방법 먼저 enum 에 대해 알아보자 enum(enumeration) 클래스( 상수의 집합) 열거형 클래스이며, java 1.5 부터 사용이 가능하다 셈, 계산, 열거, 목록, 일람표 (enumeration) 의 앞부분을 딴 예약어 장점 열거체를 비교할 때 실제 값뿐만 아니라 타입까지도 체크한다 열거체의 상숫값이 재정의되더라도 다시 컴파일할 필요가 없다. 데이터들 간의 연관 관계 표현이 가능하다 상태와 행위를 한곳에서 관리가 가능하다 데이터 그룹관리가 가능하다 특징 클래스를 ..

스터디/LiveStudy 2021.01.25

1주차 AOP, LiveStudy, @Log4j2 vs @Slf4j with log4j2

블로그 스터디 1주차 AOP(Aspect-oriented programming) 애플리케이션 전체에 걸쳐 사용되는 공통 기능을 재사용 하도록 지원하는 것 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화를 하는 것 프록시 패턴 사용 이유 접근 제어 및 부가 기능을 추가하기 위해서 OOP : 비즈니스 로직의 모듈화 모듈화의 핵심 단위는 비즈니스 로직 AOP : 인프라 혹은 부가기능의 모듈화 대표적 예 : 로깅, 트랜잭션, 보안 등 각각의 모듈들의 주 목적 외에 필요한 부가적인 기능들 AOP 장점 애플리케이션 전체에 흩어진 공통 기능이 하나의 장소에서 관리된다는 점 다른 서비스 모듈들이 본인 목적에만 충실하고 그외 사항들은 신경쓰지 않아도 된다는 점 Spr..

@Log4j2 vs @Slf4j with log4j2

@Log4j2 vs @Slf4j with log4j2 프로젝트 진행 도중 @Log4j2 을 사용할지 @Slf4j로 log4j2.xml 을 설정해서 같이 사용할지 고민을 했었다. SLF4j(Simple Logging Facade For Java) 애플리케이션이 문자열을 기록하도록한다. Log4j2 API는 텍스트를 로깅하려는 경우 모든 CharSequence 로깅을 지원하지만 모든 개체를 있는 그대로 로깅하는 것도 지원한다 Log4j2 메시지 개체 로깅, Java 8 람다식 및 가비지 없는 로깅을 지원한다(CharSequence 개체 로깅시 문자열 생성방지) 뭘 써야할까? Log4j2와 slf4j는 똑같은 기능을 제공한다고 한다. Log4j2가 API와 구현 모듈로 분리되어서 SLF4J를 사용하지 않아도 ..

Spring/Spring Boot 2021.01.22

10주차 과제: 멀티쓰레드 프로그래밍

10주차 과제: 멀티쓰레드 프로그래밍 목표 자바의 멀티쓰레드 프로그래밍에 대해 학습하세요. 학습할 것 (필수) Thread 클래스와 Runnable 인터페이스 쓰레드의 상태 쓰레드의 우선순위 Main 쓰레드 동기화 데드락 학습 하기 전 생각 Thread 관련 공부할때 쉽지 않은 부분이였다. 멀티 쓰레드 프로그래밍과 Thread와 Runnable에 대한 동기화 등등 생각나는 것들이 많아 어떻게 포스팅을 해야할지 감이 오지 않는다.. 선장님이 말씀하신 깊은 범위는 가진 않지만 기본적인 것과 추가적으로 생각나는 것들(?)로 내용을 넣어볼까한다. 이번 주차 포스팅은 내용이 많아 보기 부담되시는 분도 계실거라 생각이 되지만 사용하는 방법이나 왜 사용하는지 어떻게 사용하는지에 대해 포스팅해보고자 한다. 기본적인 것..

스터디/LiveStudy 2021.01.18

9주차 과제: 예외 처리

9주차 과제: 예외 처리 목표 자바의 예외 처리에 대해 학습하세요. 학습할 것 (필수) 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 자바가 제공하는 예외 계층 구조 Exception과 Error의 차이는? RuntimeException과 RE가 아닌 것의 차이는? 커스텀한 예외 만드는 방법 Exception과 Error의 차이는? 먼저 알아보기 전에 Exception 과 Error에 대해 알아보자 예외의 종류 checked exception error runtime exception 혹은 unchecked exception Error 개념 컴퓨터 하드웨어의 오동작 또는 고장으로 인해 응용프로그램에 이상이 생겼거나 JVM 실행에 문제가 생겼을 경우 발생하는 것..

스터디/LiveStudy 2021.01.11

온라인 무료 도서 모음

https://gall.dcinside.com/board/view/?id=programming&no=1077555 에서 가져왔습니다 무료도서 ridibooks.com/category/free-books/2220 리디북스 https://thebook.io/ 언제나휴일 http://ehpub.co.kr/ 이재홍님 블로그 http://pyrasis.com/ 코딩도장- 프로그래밍 수련 사이트 https://dojang.io/ 위키독스(파이썬다수) https://wikidocs.net/ SoEn http://soen.kr/lecture/ccpp/cpplec.htm 코딩누리 https://codingnuri.com/ 리얼타임 https://www.hanbit.co.kr/realtime/books/new_webboo..

기타/기타 2021.01.07

8주차 과제: 인터페이스

목표 자바의 인터페이스에 대해 학습하세요. 학습할 것 (필수) 인터페이스 정의하는 방법 인터페이스 구현하는 방법 인터페이스 레퍼런스를 통해 구현체를 사용하는 방법 인터페이스 상속 인터페이스의 기본 메소드 (Default Method), 자바 8 인터페이스의 static 메소드, 자바 8 인터페이스의 private 메소드, 자바 9 인터페이스 다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 매개체 역할까지 담당하는 추상 클래스보다 추상적인 추상 클래스를 의미한다 자바에서 추상 클래스는 추상 메소드뿐만 아니라 생성자, 필드, 일반 메소드도 포함될 수 있지만 인터페이스는 오로지 추상 메소드와 상수만을 포함할 수 있다.(JDK 1.8 이전) 인터페이스와 추상 클래스를 사용하는 이..

스터디/LiveStudy 2021.01.04

Json 과 XML의 차이

Json vs XML XML(eXtensible Markup Language) HTML과 매우 비슷한 문자 기반의 마크업 언어이다 사람과 기계가 동시에 읽기 편한 구조로되어있다. HTML처럼 데이터를 보여주는 목적이 아닌 데이터를 저장하고 전달하는 목적으로 만들어졌다. XML 태그는 HTML 태그 처럼 미리 정의 되어 있지 않고, 사용자가 직접 정의할 수 있다 JSON(JavaScript Object Notation) 브라우저 통신을 위한 속성-값 또는 키-값 쌍으로 이루어진 데이터 포맷 JSON과 XML 공통점 데이터를 저장하고 전달하기 위해 고안되었다 기계 뿐아니라 사람도 쉽게 읽을 수 있다. 계층적인 데이터 구조를 가진다 다양한 프로그래밍 언어에 의해 파싱될 수 있다 XMLHttpRequest 객체..

JavaScript/기타 2021.01.03

Spring Boot AutoConfiguration 자동 설정, 원리

Spring Boot AutoConfiguration 자동 설정, 원리 Spring Boot는 Spring과 마찬가지로 component-scan을 통해서 component들을 찾아서 bean을 생성한다. 이 과정으로 설정한 bean들(@Repository, @Service, @Controller, @RestController, @Configuration에 등록한 @Bean과 같은 설정들)이 생성된다 Spring Boot에서 미리 작성된 autoconfiguration에 의해 추가적인 bean들도 같이 생성된다. @SpringBootApplication @SpringBootApplication public class Application { public static void main(String[] ar..

Spring/Spring Boot 2021.01.03

2020 회고록이 아닌 회고록

2020 회고록이 아닌 회고록 처음 쓰는 회고록이다. 그래서 회고록이 아닌 회고록이다. 1월 2019년 8월부터 국비 학원을 다니고 있었다. 2학년 2학기 때 학교 대신 취업계로 다니고 있었는데 학원을 다니게 된 계기가 학교에서는 C#과 ASP를 배우고 있었고 원하는 커리큘럼이 아니었다. 자바를 배워보고 싶어서 다니게 되었고 Java, Spring, Oracle 등 많은 걸 배웠었다. 수강생 전체가 진행했던 대규모 프로젝트 통신사 CRM를 진행했었다. 3개의 팀으로 나눠서 진행했고 첫 협업 프로젝트라 좋은 경험이었다. 개인 프로젝트를 진행하고 싶어서 5명의 팀을 꾸려서 따로 진행도 했었다. 개인 프로젝트는 헤어샵 관리 프로그램이다. 메인 프로젝트하고 개인 프로젝트랑 같이 진행하면서 바빴지만 좋았었다. 2..

기타/기타 2021.01.02