thisisnew (매일 코딩, 매일 독서)

고정 헤더 영역

글 제목

메뉴 레이어

thisisnew (매일 코딩, 매일 독서)

메뉴 리스트

  • 홈
  • 태그
  • 전체보기 (164)
    • Development (131)
      • Go (5)
      • Java (7)
      • Servlet (1)
      • Spring (0)
      • Docker (17)
      • Elasticsearch (4)
      • Linux (16)
      • Algorithm (72)
      • Deployment (1)
      • Javascript (1)
      • Regular Expression (7)
    • Diary (9)
    • Review (24)
      • Book (19)
      • Book(DEV) (4)
      • Movie (1)

검색 레이어

thisisnew (매일 코딩, 매일 독서)

검색 영역

컨텐츠 검색

Development/Java

  • 리플렉션(Reflection) -3

    2019.10.29 by thisisnew

  • 리플렉션(Reflection) -2

    2019.10.28 by thisisnew

  • 리플렉션(Reflection) -1

    2019.10.25 by thisisnew

  • [Design Pattern] 싱글톤 패턴(Singleton Pattern) -2

    2019.10.22 by thisisnew

  • [Design Pattern] 싱글톤 패턴(Singleton Pattern) -1

    2019.10.22 by thisisnew

  • [Design Pattern] 팩토리 메서드 패턴(Factory Method Pattern)

    2019.10.21 by thisisnew

  • 문자열(String)의 빈 값 혹은 Null을 다루는 여러가지 방법

    2019.10.19 by thisisnew

리플렉션(Reflection) -3

이번 편에서는 리플렉션을 활용하여 변수의 정보를 얻은 후, 그것의 값을 동적으로 다루는 방법에 대해 알아보도록 하겠습니다. 2편에서 다룬 생성자를 동적으로 받아와서 객체를 생성하는 방법과, 메서드를 동적으로 활용하는 방법. 이 두 가지 방법을 기억하시나요. 이번에도 흡사한 패턴으로 진행할 것입니다. 변수의 값을 동적으로 제어하는 방법 먼저 1편에서 변수의 정보를 추출하는 방법으로 2가지의 메서드를 언급했었는데요. 바로 getFields()와 getDeclaredFields()였습니다. 뚜렷한 특징으로, 'Declared'라는 문자열이 붙은 함수는 private으로 선언된 인스턴스에도 접근할 수 있었죠. 1편에서 생성한 ReflectionTest 클래스에는 변수의 접근제어자를 전부 private으로 했기 ..

Development/Java 2019. 10. 29. 19:06

리플렉션(Reflection) -2

https://thisisnew-storage.tistory.com/10 리플렉션(Reflection) -1 관상(觀相)이라는 단어를 아시나요? 관상이란 사람의 생김새를 보고, 그 사람의 운명이나 성격 같은 정보를 알아내는 점법인데요. 자바에도 객체를 통해 그 객체의 원래 클래스와 그에 따르는 여러 정보들을 알아.. thisisnew-storage.tistory.com 저번 리플렉션 1편에서 클래스의 정보들을 추출하는 방법에 대해 알아보았는데요. 예제에서 생성자와 메서드, 그리고 변수들의 정보를 추출했었죠? 이번에는 그것들을 각각 어떻게 활용하는지 알아보도록 하겠습니다. 위의 사진과 같이, 리플렉션을 이용하면 동적으로 실행할 수 있다고 저번 1편에서 언급했었는데요. 동적으로 실행한다는 것은 코드가 특정 ..

Development/Java 2019. 10. 28. 18:32

리플렉션(Reflection) -1

관상(觀相)이라는 단어를 아시나요? 관상이란 사람의 생김새를 보고, 그 사람의 운명이나 성격 같은 정보를 알아내는 점법인데요. 자바에도 객체를 통해 그 객체의 원래 클래스와 그에 따르는 여러 정보들을 알아낼 수 있는 방법이 있습니다. 이것을 리플렉션(Reflection)이라고 하는데요. 정보들을 알아내는 것에서 그치지 않고, 이 정보들을 수정하거나 실행할 수도 있습니다. 리플렉션이 필요한 상황은 과연 언제일까요? 다음 사진을 보도록 하겠습니다. 자바의 기본 API 중 하나인 Date 클래스를 이용하는 상황입니다. 이클립스(Eclipse)나 인텔리제이(Intellij) 같은 IDE(Integrated development environment)로 개발을 할 때, 사진에 나온 것처럼 자동완성 기능을 다들 사..

Development/Java 2019. 10. 25. 13:05

[Design Pattern] 싱글톤 패턴(Singleton Pattern) -2

https://thisisnew-storage.tistory.com/8 [Design Pattern] 싱글톤 패턴(Singleton Pattern) -1 자바의 디자인 패턴에서 단골로 등장하는 '싱글톤 패턴'에 대해 알아보도록 하겠습니다. 이 패턴은 인스턴스가 오직 하나만 생성되고, 생성된 인스턴스를 어디서든 접근하여 이용할 수 있게 만드는 패턴입니다... thisisnew-storage.tistory.com 1편에서 미리 동기화의 문제가 있다고 말씀드렸는데요. 구체적으로 어떤 문제인지 살펴보도록 하겠습니다. '인스턴스를 하나만 생성하여, 이 동일한 객체를 어디서든 접근하여 이용하는 것'이 싱글톤 패턴이라고 말씀드렸었죠? 과연 '어떠한 경우에도' 객체는 하나만 생성되는지 코드를 통해 확인해보도록 하겠습니..

Development/Java 2019. 10. 22. 23:09

[Design Pattern] 싱글톤 패턴(Singleton Pattern) -1

자바의 디자인 패턴에서 단골로 등장하는 '싱글톤 패턴'에 대해 알아보도록 하겠습니다. 이 패턴은 인스턴스가 오직 하나만 생성되고, 생성된 인스턴스를 어디서든 접근하여 이용할 수 있게 만드는 패턴입니다. 싱글톤 패턴을 이해하기 위해서는 먼저 일반적인 객체 생성에 대해 알아야 하는데요. 아래의 예시를 보도록 하죠. ClassName abc = new ClassName(); 이 한 줄의 코드에는 다음과 같은 의미가 담겨 있습니다. new를 통해 메모리에 할당한다. 즉, 객체를 생성한다. 생성되는 객체의 형태는 ClassName이라는 이름을 가진 클래스이다. 생성 시 ClassName()이라는 디폴트 생성자를 이용, ClassName을 초기화시킨다. 마지막으로 생성된 객체에는 abc라는 이름표를 붙여서, abc..

Development/Java 2019. 10. 22. 02:50

[Design Pattern] 팩토리 메서드 패턴(Factory Method Pattern)

이번에는 디자인 패턴 중에 하나인 '팩토리 메서드 패턴'에 대해 알아보도록 하겠습니다. 이는 하위 클래스에서 객체를 만들어주는 것을 '공장(Factory)'에 비유한 것인데요. 이 패턴은 객체의 생성을 하위 클래스에서 대신합니다. 인터페이스를 사용하여, 하위 클래스에서 줄기가 갈라지며 적절한 객체를 생성하기 때문에 코드 제어에 효과적입니다. 더불어 상위 클래스에서 직접 객체를 생성하지 않으므로 의존성도 낮아지죠. 이해하기 쉬운 상황과, 그 상황을 코드로 구현해봤는데요. 차례대로 살펴보겠습니다. 인터넷 쇼핑을 예로 들어보죠. 건강을 위해 ㅌ몬에서 비타민과 닭가슴살을, ㅋ팡에서 프로틴(유청단백질)과 구운 달걀을 쇼핑하는 과정을 가정해 보도록 하겠습니다. 먼저, 쇼핑몰을 정해서 들어가겠죠? Timon(...)..

Development/Java 2019. 10. 21. 20:10

문자열(String)의 빈 값 혹은 Null을 다루는 여러가지 방법

자바에서 문자열의 빈 값("")과 Null을 다루는 방법은 여러 가지가 존재합니다. 먼저, 문자열의 빈 값과 null을 다룰 때 아래와 같은 코드를 자주 만나게 되는데요. boolean checkString(String str) { return str == null || str.equals(""); } 하지만 이 방법은 equals()가 내부적으로 가지는 여러 로직에 의해 기능적으로 낭비일 수 있습니다. 그래서 여기서는 3가지 방법을 소개하려고 합니다. 1. 자바 6보다 낮은 버전이라면 length()를 활용해보시기 바랍니다. 아래의 코드를 봐주시기 바랍니다. //equals() public boolean equals(Object anObject) { if (this == anObject) { retur..

Development/Java 2019. 10. 19. 00:34

추가 정보

인기글

최신글

페이징

이전
1
다음
Github LinkedIn
thisisnew (매일 코딩, 매일 독서)
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바