반응형

전체 글 169

[백기선님의 자바 라이브 스터디] 11주차 - Enum

www.youtube.com/watch?v=HLnMuEZpDwU 목표 자바의 열거형에 대해 학습하세요. 학습할 것 (필수) enum 정의하는 방법 enum이 제공하는 메소드 (values()와 valueOf()) java.lang.Enum EnumSet 추천 도서 www.yes24.com/Product/Goods/7516911 토비의 스프링 3.1 세트 『토비의 스프링 3.1』은 스프링을 처음 접하거나 스프링을 경험했지만 스프링이 어렵게 느껴지는 개발자부터 스프링을 활용한 아키텍처를 설계하고 프레임워크를 개발하려고 하는 아키텍트에 www.yes24.com www.acornpub.co.kr/book/jpa-programmig 자바 ORM 표준 JPA 프로그래밍 JPA 기초 이론과 핵심 원리, 그리고 실무에..

Study/java 2021.03.05

[백기선님의 자바 라이브 스터디] 10주차 - 멀티쓰레드 프로그래밍

www.youtube.com/watch?v=HLnMuEZpDwU 목표 자바의 멀티쓰레드 프로그래밍에 대해 학습하세요. 학습할 것 (필수) Thread 클래스와 Runnable 인터페이스 쓰레드의 상태 쓰레드의 우선순위 Main 쓰레드 동기화 데드락 추천도서 www.yes24.com/Product/Goods/3015162 자바 병렬 프로그래밍 스레드는 자바 플랫폼에서 가장 기본적으로 제공되는 기능 중 하나다. 멀티코어 프로세서가 대중화되면서 고성능 애플리케이션을 작성할 때 병렬 처리 능력을 효과적으로 활용하는 일의 중요 www.yes24.com Process 의미 그대로 Process입니다. 프로그램을 실행하여 실행 중인 것 예를 들어 OS에서 크롬을 킨다던가, intellij를 실행한다던가 엑셀을 실행하..

Study/java 2021.03.02

[백기선님의 자바 라이브 스터디] 9주차 - 예외 처리

www.youtube.com/watch?v=HLnMuEZpDwU 목표 자바의 예외 처리에 대해 학습하세요. 학습할 것 (필수) 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 자바가 제공하는 예외 계층 구조 Exception과 Error의 차이는? RuntimeException과 RE가 아닌 것의 차이는? 커스텀한 예외 만드는 방법 추천도서 www.11st.co.kr/products/2874490917?utm_medium=%EA%B2%80%EC%83%89&gclid=Cj0KCQiA7NKBBhDBARIsAHbXCB5I37sBM_HgHnyywcYnfRFFqVixy9co8mCWT83X-aNHrulHvk99TTIaAkZqEALw_wcB&utm_source=%EA%B5%..

Study/java 2021.02.24

[백기선님의 자바 라이브 스터디] 8주차 - 인터페이스

www.youtube.com/watch?v=HLnMuEZpDwU 목표 자바의 인터페이스에 대해 학습하세요. 학습할 것 (필수) 인터페이스 정의하는 방법 인터페이스 구현하는 방법 인터페이스 레퍼런스를 통해 구현체를 사용하는 방법 인터페이스 상속 인터페이스의 기본 메소드 (Default Method), 자바 8 인터페이스의 static 메소드, 자바 8 인터페이스의 private 메소드, 자바 9 추천 도서 book.interpark.com/product/BookDisplay.do?_method=detail&sc.prdNo=220675219&gclid=Cj0KCQiApsiBBhCKARIsAN8o_4gBdWvcLgQ7MkppWwNVd8BU1dELce8QtUxvrL9jHijO2gOC9yVTPGEaAiyDEALw..

Study/java 2021.02.21

[백기선님의 자바 라이브 스터디] 7주차 - 패키지

www.youtube.com/watch?v=HLnMuEZpDwU 목표 자바의 패키지에 대해 학습하세요. 학습할 것 (필수) package 키워드 import 키워드 클래스패스 CLASSPATH 환경변수 -classpath 옵션 접근지시자 추천 도서 book.naver.com/bookdb/book_detail.nhn?bid=1486282 테스트 주도 개발 최근 주목받고 있는 프로그래밍 방법인 테스트 주도 개발, 즉 TDD를 설명한 최초의 책이자, 가장 권위적인 책. 테스트 주도 개발을 퍼뜨린 장본인이며 객체 지향 프로그래밍의 선구자 중 한 사람 book.naver.com Package 키워드 Package란 무엇인가? Package는 Class, Interface file의 집합 첫 줄에 작성되어야함 모든..

Study/java 2021.02.19

@Autowired vs @Inject vs @Resource

가장 많이 사용하는 @Autowired는 뭘까? 그와 비슷한 @Inject, @Resource는 무엇일까? 오늘 재직중인 회사에서 재미있는 여러가지 키워드를 들었습니다. 궁금한 건 못참으니 학습하여 정리해보겠습니다. 먼저 위에 3가지의 공통점은 의존 관계를 맺어주는 것을 말합니다. 해당 애노테이션을 사용한 후 클래스를 선언하면 작성한 클래스와 작성된 클래스는 의존 관계가 맺어지게 됩니다. @Component public class Load { @Autowired private SuperCar superCar; // superCar class DI @Inject private GoodCar goodCar; // GoodCar class DI } 다음으로 3가지의 차이점으로 아래의 표를 참조해주세요. @Au..

Study/spring 2021.02.18

[백기선님의 자바 라이브 스터디] 6주차 - 상속

www.youtube.com/watch?v=HLnMuEZpDwU 목표 자바의 상속에 대해서 학습하세요. 학습할 것 (필수) 자바 상속의 특징 super 키워드 메소드 오버라이딩 다이나믹 메소드 디스패치 (Dynamic Method Dispatch) 추상 클래스 final 키워드 Object 클래스 자바 상속의 특징 상속이란? 상위 클래스에서 선언 된 변수나 메서드를 하위 클래스에서 동일하게 사용할 수 있다. 자바 상속은 extends 를 사용합니다. 모든 클래스는 Object 객체를 상속받고 있습니다. public class Study extends Basic { // 상속 } 사용하는 이유? 코드의 재사용성을 높여주고 클래스 간 계층구조를 분류하고 관리하기 편해진다. 상속에는 여러가지 종류가 있습니다...

Study/java 2021.02.17

[Querydsl] 성능개선 - 3편 ( group by, 커버링 인덱스, update )

이 글은 우아한 형제들 콘서트에서 이동욱님의 영상을 보고 정리를 위한 글입니다. 이 글에 작성된 예시는 모두 Github에 올려두었습니다. Group By 최적화 Mysql 사용 시 index가 걸려있지 않는 컬럼을 group by 할 경우 file sort가 발생합니다. Index가 걸려있지 않는 경우 select * from house group by name Index가 걸려있는 경우 select * from house group by id file sort가 발생하면 성능이 떨어질 수 밖에 없습니다. 이 경우 order by 절에 null을 넣으면 file sort가 발생하지 않습니다. select * from house group by name order by null 하지만 안타깝게도 Quer..

Develop/spring-data 2021.02.04

[Querydsl] 성능개선 - 2편 ( N + 1 )

이 글은 우아한 형제들 콘서트에서 이동욱님의 영상을 보고 정리를 위한 글입니다. 이 글에 작성된 예시는 모두 Github에 올려두었습니다. N + 1 Entity 기반인 Jpa, Querydsl 을 사용하다 보면 N + 1은 한번 씩 겪는 문제라고 생각합니다. N + 1이 무엇이고 왜 발생하는지 알아보겠습니다. 먼저 아래의 코드를 살펴보겠습니다. @Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) @DynamicUpdate @DynamicInsert public class House { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; private String n..

Develop/spring-data 2021.02.01

[Querydsl] 성능 개선 1편

이 글은 우아한 형제들 콘서트에서 이동욱님의 영상을 보고 정리를 위한 글입니다. 이 글에 작성된 예시는 모두 Github에 올려두었습니다. 1. 동적 쿼리 사용 시 BooleanExpression을 사용하자! Querydsl에서 동적쿼리 사용방법은 조건문에 null을 넣으면 조건문이 무시되는 방법을 사용하면 됩니다. public Staff dnamicQuery(String name) { return queryFactory .selectFrom(staff) .where(name == null ? null : name) .fetchOne(); } 위처럼 코드를 작성한다고 가정했을 때 동적 조건이 많아진다면 쿼리는 매우 복잡해질 것입니다. 그래서 BooleanExpression을 리턴하는 메소드를 생성하여 사..

Develop/spring-data 2021.01.29

[도서] Object - 객체 설계

Object 도서를 구입 후 정리 시작! Object 도서는 예제 소스와 함께 이론이 정리되있기 때문에 모든 예제 소스는 github에 있습니다. 이 블로그는 github에서 작성한 글을 정리하여 옮겨놓은 글입니다. 문제가 있는 코드 모든 소프트웨어 모듈에는 세 가지 목적이 있다. 실행 중에 제대로 동작하는것 변경을 위해 존재하는 것 코드를 읽는 사람과 의사소통하는 것 객체 사이의 의존성의 문제가 있다. 객체지향 설계는 서로 의존하면서 협력하는 객체들의 공동체를 구축하는 것 애플리케이션의 기능을 구현하는 데 필요한 최소한의 의존성만 유지하고 불필요한것 의존성을 제거하는 것 이 코드는 결합도가 높은 코드입니다. 좋은 설계는 결합도를 낮춰 변경이 용이한 설계를 만드는 것입니다. 설계 개선하기 개선방법 각 객..

Study/java 2021.01.05

[백기선님의 자바 라이브 스터디] 5주차 - 클래스

www.youtube.com/watch?v=HLnMuEZpDwU 목표 자바의 Class에 대해 학습하세요. 학습할 것 (필수) 클래스 정의하는 방법 객체 만드는 방법 (new 키워드 이해하기) 메소드 정의하는 방법 생성자 정의하는 방법 this 키워드 이해하기 클래스 클래스란 변수와 메서드 집합체이며, 객체를 정의하는 설계도입니다. 객체란? 자바는 객체지향 프로그램입니다. 객체지향 프로그램에서 모든 데이터를 객체로 취급합니다. 하나의 예로 스토어가 있고 스토어에서 일하는 직원들이 있다고 가정해보겠습니다. 아래의 코드를 참조해주세요. public class StoreClass { private String storeName; // 변수 private String address; // 변수 /** * 메서드..

Develop/java 2021.01.04

[백기선님의 자바 라이브 스터디] 4주차 - 선택문과 제어문

www.youtube.com/watch?v=HLnMuEZpDwU 목표 자바가 제공하는 다양한 연산자를 학습하세요. 학습할 것 선택문 제어문 정리하기에 앞서 모든 소스는 github에 있습니다. 선택문 자바에서 선택문은 크게 if문과 switch문 2가지가 있습니다. 먼저 if문에 대해서 알아보겠습니다. if문 if문은 크게 3가지 형태로 사용할 수 있습니다. if ( {조건문} ) { 로직 } if 문 내의 조건이 참일 경우 로직을 실행합니다. if ( {조건문} ) { 로직1 } else { 로직2 } if 문 내의 조건이 참일 경우 로직1을 실행합니다. if 문 내의 조건이 거짓일 경우 로직2를 실행합니다. If ( {조건문} ) { 로직1 } else if ( {조건문} ) { 로직2 } else ..

Study/java 2020.12.28

[백기선님의 자바 라이브 스터디] 3주차 - 연산자

www.youtube.com/watch?v=HLnMuEZpDwU 목표 자바가 제공하는 다양한 연산자를 학습하세요. 학습할 것 산술 연산자 비트 연산자 관계 연산자 논리 연산자 instanceof assignment(=) operator 화살표(->) 연산자 3항 연산자 연산자 우선 순위 (optional) Java 13. switch 연산자 간단한 용어 정리 정리하기에 앞서 관련용어를 정리해보겠습니다. 연산 ( operations ) 프로그램에서 데이터를 처리하여 결과를 얻어내는 것 연산자 ( operator ) 연산에 사용되는 부호, 기호 피연산자 ( operand ) 연산에 대상이되는 데이터 연산식 ( expressions ) 피연산자와 연산자로 연산을 하는 과정 public void expressi..

Study/java 2020.12.27
728x90
반응형