본문으로 바로가기

KTKO 개발 블로그와 여행 일기

현재위치 :: HOME BLOG CATEGORY SEARCH ARCHIVE TAGS MEDIA LOCATION GUESTBOOK

네비게이션

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록
관리자
  • 블로그 이미지
    ktko

    개발을 직업으로 삼고, 여행을 좋아하는 남자의 블로그

    링크추가
  • 글쓰기
  • 환경설정
  • 로그인
  • 로그아웃

[스프링/Spring] 어노테이션을 이용한 의존 자동 주입

@Autowired에 대해서 스프링에서는 의존을 자동으로 주입할 수 있다. 자동 주입을 사용하면 를 사용하지 않고도 스프링이 알아서 의존 빈 객체를 찾아서 주입해 줄 수 있다. 123456 태그 없이 생성자에 @Autowired를 통한 의존 주입 123456789101112public class Greeter { private HelloFormat helloFormat; @Autowired Greeter(HelloFormat helloFormat) { this.helloFormat = helloFormat; } public String greet(String guest) { return String.format(helloFormat.format, guest); }} 태그 없이 setter에 @Autowi..

Spring 스프링 2018. 10. 21. 20:35

자바 람다와 함수형 인터페이스 - part2

함수형 인터페이스란 ? 잘 알고 있듯이 Runnable 인터페이스는 run() 이라는 추상 메서드 하나만 가진다. 이처럼 추상 메서드 하나만 갖는 인터페이스를 자바 8부터는 함수형 인터페이스라고 한다. 이런 함수형 인터페이스만을 람다식으로 변경할 수 있다. 아래 함수형 인터페이스 TestFunctionInterface를 만들었는데 위에 @FunctionInterface 어노테이션을 붙이는 것은 옵션이다. 이 어노테이션이 붙을 경우 컴파일러는 인터페이스가 함수형 인터페이스의 조건에 맞는지 검사한다. 즉 단 하나의 추상 메서드만을 갖고 있는지 확인한다. 1234567891011public class LambdaTest { public static void main(String[] args) { TestFun..

Java 개발 이야기 2018. 10. 21. 20:26

자바 람다와 함수형 인터페이스 - part1

람다가 도입된 이유를 크게 기업 환경 변화와 프로그래머들의 요구라고 했는데 이를 좀 더 자세히 살펴보자. 근래에 가장 핫한 용어 가운데 빅데이터가 있다. 기업들은 빅데이터의 분석 및 활용을 통해 기업 전략을 수입하고, 수익을 극대화하고자 한다. 이런 빅데이터 분석은 당연히 ICT 기술을 통해 이뤄질 수밖에 없다. 따라서 프로그래머들에게 빅데이터를 프로그램적으로 다룰 수 있는 방법이 필요해졌다. 그 방법의 중심에는 멀티 코어를 활용한 분산 처리, 즉 병렬화 기술이 필요하다. 지금은 하나의 CPU 안에 다수의 코어를 삽입하는 멀터 코어 프로세서들이 등장하면서 일반 프로그래머에게도 병렬화 프로그램이에 대한 필요성이 생기기 시작했다. 이러한 추세에 대응하기 위해 자바8 에서는 병렬화를 위한 컬렉션(배열, Lis..

Java 개발 이야기 2018. 10. 21. 15:11

Effective Java #6 유효기간이 지난 객체 참조는 폐기하라

C나 C++ 처럼 손수 메모리 관리를 하다가 GC가 있는 Java를 사용하면 무척이나 편하다. 볼 일 없는 객체는 자동적으로 반환되기 때문에 메모리 관리가 필요하다는 사실을 망각하게 되는데 잘못된 습관이다.아래 스택 코드에는 뚜렷하게 잘못된 부분이 없다. 아무리 많은 테스트를 하더라도 통과할 것이다 하지만 이 프로그램은 보이지 않는 문제가 있다. 123456789101112131415161718192021222324252627class Stack { private Object[] elements; private int size = 0; private static final int DEFAULT_INITIAL_CAPACITY = 16; public Stack() { elements = new Object[..

Effective Java/1장 객체의 생성과 삭제 2018. 10. 20. 14:00

Effective Java #5 불필요한 객체는 만들지 마라

기능적으로 동일한 객체는 필요할 때마다 만드는 것보다 재사용하는 편이 더 낫다. 객체를 재사용하는 프로그램은 더 빠르고 우아하다. 변경 불가능 객체는 언제나 재사용할 수 있다. 절대로 피해야 할 극단적 예를 하나 들어보자. 아래 예제를 실행될 때마다 String 객체를 만드는데, 쓸데 없는 짓이다. 생성자 호출로 만들어 지는 모든 객체와 기능이 같다. 만일 아래 문장이 순환문이나 자주 호출되는 메서드 안에 있다면 수백만 개의 String 객체가 만들어 질 것이다. 아래 코드에서 5번과 같이 사용하는 것이 바람직하다. 12345//최악의 코드String str = new String("Effective Java"); //바람직한 코드String str = "Effective Java"; 5번 라인같이 실행..

Effective Java/1장 객체의 생성과 삭제 2018. 10. 20. 12:37

[스프링/Spring] 생성자 방식과 설정 메서드 방식을 이용한 DI 선언하기

스프링에서 DI를 사용할 때 2가지 방식을 이용해 사용한다.달리 설명할 필요없이 간단한 예제코드로 끝내 보자. 생성자 방식 스프링 XML 설정에서 생성자를 이용해서 의존 객체를 주입할 때 사용한 태그는 태그 이다. 만약 생성자에 의존 객체가 2개이면 순서대로 사용하면 된다. 또한 순서를 순서대로 사용하지 않는다면 index에 순서를 기입하여 사용할 수 있다. 자바 코드 1234567891011121314151617181920public class HelloFormat { public String format; public void setFormat(String format) { this.format = format; }} public class Greeter { private HelloFormat hel..

Spring 스프링 2018. 10. 19. 10:08

Effective Java #4 객체 생성을 막을 때는 private 생성자를 사용하라

때로는 정적 메서드나 필드만 모은 클래스를 만들고 싶을 때가 있다. 자바의 기본 자료형 값 또는 배열에 적용되는 메서드를 한군데 모아둘 때 유용하다. java.lang.Math나 java.util.Arrays가 좋은 예다.특정 인터페이스를 구현하는 객체를 만드는 팩터리 메서드 등의 정적 메서드를 모아놓을 때도 사용할 수 있다. java.util.Collections는 그 좋은 예다. 이런 유틸리티 클래스들은 객체를 만들 목적의 클래스가 아니다. 객체를 만들면 이상하다. 하지만 생성자를 생략하면 컴파일러는 자동으로 인자 없는 public 기본 생성자를 만들어 버린다. 사용자는 이 생성자를 일반 생성자와 구별할 수 없다. 따라서 원래 의도와는 달리 객체 생성이 가능한 클래스가 공개 API에 포함되느 일도 드..

Effective Java/1장 객체의 생성과 삭제 2018. 10. 18. 16:30
  • 이전
  • 1
  • ···
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • ···
  • 44
  • 다음

사이드바

NOTICE

  • 전체 보기
MORE+

CATEGORY

  • 분류 전체보기 (308)
    • 일기 (0)
    • 코드 예제 모음 (1)
      • [JAVA] 웹 크롤링 하기 (1)
    • HTML (1)
    • Java 개발 이야기 (33)
    • Spring 스프링 (16)
    • 자바 디자인 패턴 (13)
    • Effective Java (24)
      • 1장 객체의 생성과 삭제 (7)
      • 3장 클래스와 인터페이스 (3)
      • 7장 메서드 (6)
      • 8장 일반적인 프로그래밍 원칙들 (8)
    • Kotlin 코틀린 (10)
    • JavaScript (24)
    • vue.js (0)
    • node.js (2)
    • jQuery (10)
    • Ajax&JSON (7)
    • Android (12)
    • 알고리즘 및 자료구조 (94)
      • 자바로 만드는 자료구조 (4)
      • 정렬 (3)
      • 탐색 (3)
      • 이론 (2)
      • 문제 (82)
    • 보안 (3)
    • IT인터뷰면접질문 (6)
    • 정규표현식 (2)
    • Unix (2)
    • IT이것저것 (20)
    • 맛집 (4)
    • 여행 (10)
      • 호주 (4)
      • 일본 (6)
    • 블로그 TIPS (6)
    • 영어 공부 (8)
      • 영어 문법 (8)
      • 영어 단어 (0)

RECENTLY

  • 최근 글
  • 최근 댓글

최근 글

최근댓글

Trackback

TAG

  • 자바 SOLID
  • 디자인 패턴
  • 코틀린
  • Effective Java
  • 백준
  • 백준 알고리즘
  • 자바
  • 알고리즘 문제
  • GoF
  • 이펙티브 자바
  • jquery
  • 백준알고리즘
  • 객체지향 solid
  • 자바스크립트
  • 알고리즘
MORE+

ARCHIVE

CALENDAR

«   2025/05   »
일 월 화 수 목 금 토
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 29 30 31

LINK

VISITOR

오늘
어제
전체
  • 홈으로
  • 방명록
  • 로그인
  • 로그아웃
  • 맨위로
SKIN BY COPYCATZ COPYRIGHT KTKO 개발 블로그와 여행 일기, ALL RIGHT RESERVED.
KTKO 개발 블로그와 여행 일기
블로그 이미지 ktko 님의 블로그
MENU
  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록
CATEGORY
  • 분류 전체보기 (308)
    • 일기 (0)
    • 코드 예제 모음 (1)
      • [JAVA] 웹 크롤링 하기 (1)
    • HTML (1)
    • Java 개발 이야기 (33)
    • Spring 스프링 (16)
    • 자바 디자인 패턴 (13)
    • Effective Java (24)
      • 1장 객체의 생성과 삭제 (7)
      • 3장 클래스와 인터페이스 (3)
      • 7장 메서드 (6)
      • 8장 일반적인 프로그래밍 원칙들 (8)
    • Kotlin 코틀린 (10)
    • JavaScript (24)
    • vue.js (0)
    • node.js (2)
    • jQuery (10)
    • Ajax&JSON (7)
    • Android (12)
    • 알고리즘 및 자료구조 (94)
      • 자바로 만드는 자료구조 (4)
      • 정렬 (3)
      • 탐색 (3)
      • 이론 (2)
      • 문제 (82)
    • 보안 (3)
    • IT인터뷰면접질문 (6)
    • 정규표현식 (2)
    • Unix (2)
    • IT이것저것 (20)
    • 맛집 (4)
    • 여행 (10)
      • 호주 (4)
      • 일본 (6)
    • 블로그 TIPS (6)
    • 영어 공부 (8)
      • 영어 문법 (8)
      • 영어 단어 (0)
VISITOR 오늘 / 전체
  • 글쓰기
  • 환경설정
  • 로그인
  • 로그아웃
  • 취소

검색

티스토리툴바