본문 바로가기 메뉴 바로가기

개발은 꽃

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

개발은 꽃

검색하기 폼
  • 분류 전체보기 (176)
    • Spring (53)
      • SpringBoot 실습 (11)
      • Spring 웹 MVC (14)
      • Spring 핵심 (14)
      • Spring 기초 (8)
      • Spring Boot JPA (2)
    • Java (76)
      • Effective Java (24)
      • Java 기초 (27)
      • 디자인 패턴 (17)
      • The Java (6)
      • Java8 (2)
    • 객체지향 (6)
    • Test (12)
      • JUnit (9)
      • Mockito (3)
    • Network (8)
    • DataBase (15)
    • JavaScript (4)
    • 운영체제 (0)
    • 기타 (2)
      • 일지 (0)
  • 방명록

Java (76)
[Java8] Optional

더 자바, Java 8 - 인프런 | 강의 자바 8에 추가된 기능들은 자바가 제공하는 API는 물론이고 스프링 같은 제 3의 라이브러리 및 프레임워크에서도 널리 사용되고 있습니다. 이 시대의 자바 개발자라면 반드시 알아야 합니다. 이 www.inflearn.com Optional은 언제 사용되는 것인가? 아래 소스를 확인해보자. public class App { public static void main(String[] args) { OnlineClass spring_boot = new OnlineClass(1, "spring boot", true); Duration studyDuration = spring_boot.getProgress().getStudyDuration(); //출력을 하면 결과는 어떻..

Java/Java8 2021. 9. 28. 21:37
[Java8] Stream API

더 자바, Java 8 - 인프런 | 강의 자바 8에 추가된 기능들은 자바가 제공하는 API는 물론이고 스프링 같은 제 3의 라이브러리 및 프레임워크에서도 널리 사용되고 있습니다. 이 시대의 자바 개발자라면 반드시 알아야 합니다. 이 www.inflearn.com 스트림 데이터를 담고 있는 저장소(컬렉션)이 아니다. 스트림이 처리하는 데이터 소스를 변경하지 않는다. List names = new ArrayList(); names.add("mesung"); names.add("ms"); names.add("11st"); Stream stringStream = names.stream().map(String::toUpperCase); //대문자로 변경하는 로직을 태워도 names의 근본 값들은 변경되지 않는다..

Java/Java8 2021. 8. 14. 16:22
[The Java] 프록시 패턴

프록시 패턴이란, 프록시는 대리한다 라는 개념으로 리얼 서브젝트를 참조하고 있다. 서브젝트는 인터페이스로서 프록시와 리얼 서브젝트가 공유하고 있고, 클라이언트는 서브젝트 인터페이스 타입으로 프록시를 사용한다. 클라이언트는 프록시를 거쳐 리얼 서브젝트를 사용하기 때문에 프록시는 리얼 서브젝트에 대한 접근을 관리하거나 부가기능을 제공하고 리턴값을 변경할 수도 있다. 리얼 서브젝트는 자신이 해야할 일만 하면서(SRP) 프록시를 이용해 부가적인 기능(접근제한, AOP, 로깅, 트랜잭션)을 제공할 수 있다. 부가적인 기능마저 리얼 서브젝트에서 제공해주면 매우 복잡해지고 객체지향적 개념에서도 벗어나게 된다. 프록시 패턴을 소스로 확인해보자 //BookService public interface BookService..

Java/The Java 2021. 1. 3. 22:15
[The Java] 리플렉션 API(3) : 나만의 DI를 만들자

의존성 주입해주는 커스텀 애노테이션을 만들자 커스텀 애노테이션을 만들자 @Retention(RetentionPolicy.RUNTIME) public @interface Inject { } 커스텀 애노테이션을 사용해보자 public class BookService { @Inject BookRepository bookRepository; } public class BookRepository { } BookService에서 @Inject를 통해 의존성이 주입되기를 원하고 있다. 먼저 리플렉션을 사용하여 객체가 생성되는 지 확인해보자. public class ContainerServiceTest { @Test public void getObject_BookRepository() { BookRepository b..

Java/The Java 2021. 1. 3. 22:13
[The Java] 리플렉션 API(2) : 클래스 정보 수정

Class 인스턴스에 있는 사용자 정의 클래스를 생성해보자 //Book public class Book { public static String A = "A"; private String B = "B"; public Book(){} public Book(String b) { B = b; } public void c() { System.out.println("C"); } public int sum(int left, int right) { return left + right; } } 사용자 정의 클래스의 위치를 활용하여 클래스를 생성해보자. public static void main( String[] args ) throws ClassNotFoundException, NoSuchMethodException,..

Java/The Java 2021. 1. 3. 22:10
[The Java] 애노테이션과 리플렉션

Java의 중요 애노테이션 @Retention : 해당 애노테이션을 언제까지 유지할 것인가? source, class, runtime @Inherited : 해당 애노테이션을 하위 클래스까지 전달한다. @Target : 어디에 사용할 수 있는가? type, field, method ... 리플렉션을 사용하여 애노테이션들의 정보를 살펴보자 //custom annotation 1 @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE, ElementType.FIELD}) @Inherited public @interface MyAnnotation { String value() default "mesung"; int number() default 100; ..

Java/The Java 2021. 1. 3. 22:07
[The Java] 리플렉션 API(1) : 클래스 정보 조회

사용자가 정의한 클래스들은 프로그램 실행 시, 클래스 로더 에 의해 사용자 정의 클래스 타입의 Class 인스턴스들이 힙 영역에 올라간다. 힙 영역에 올라가 있는 사용자 정의 클래스 타입의 Class 인스턴스를 꺼내보자 (3가지 방법) //Book => 사용자가 정의한 클래스 public class App { public static void main( String[] args ) throws ClassNotFoundException { //1. Book.class로 Class 인스턴스에 접근 Class bookClass = Book.class; //2. 사용자 애플리케이션에 생성된 인스턴스를 사용하여 Class 인스턴스에 접근 Book book = new Book(); Class aClass1 = Cl..

Java/The Java 2021. 1. 3. 22:06
[The Java] 클래스 로더와 JVM

Java 프로그램의 실행 과정 Java 프로그램을 실행하면 JVM은 OS로 부터 메모리를 할당받는다. 작성한 .java 파일은 컴파일러에 의해 .class(바이트 코드) 파일로 변환된다. 클래스 로더에 의해서 .class(바이트 코드가 포함된) 파일을 찾아 JVM에 올려놓는다.(런타임) 실행엔진에 의해 .class(바이트 코드가 포함된) 파일을 한줄 씩 실행하게 된다. 클래스 로더 클래스 로더는 위 그림처럼 로딩 - 링크 - 초기화 순으로 진행된다. 로딩 Bootstrap(최상위 부모)

Java/The Java 2021. 1. 3. 21:59
이전 1 2 3 4 ··· 10 다음
이전 다음
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
  • 빌더 패턴
  • 복사 팩토리
  • JPA
  • 정적팩터리메서드
  • package-private
  • mustache
  • springboot
  • java8
  • 자바8
  • ifPresent
  • try catch finally
  • try with resources
  • 점층적 생성 패턴
  • 이펙티브 자바
  • 이펙티브자바
  • 생성자
  • 빈 순환 참조
  • Effective Java
  • Spring
  • java
  • 팩토리 메소드 패턴
  • @Lazy
  • effectivejava
  • 인프런
  • flatMap
  • 스프링부트
  • 김영한
  • 연관관계
  • jdk버전
  • junit
more
«   2026/02   »
일 월 화 수 목 금 토
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
글 보관함

Blog is powered by Tistory / Designed by Tistory

티스토리툴바