Programming/Java
-
[Java] DTO와 VO 그리고 EntityProgramming/Java 2021. 8. 1. 18:45
DTO와 VO 그리고 Entity DTO Data Transfer Object로 계층(Layer) 간 데이터 교환을 위해 사용하는 객체이다. 주로 데이터 교환을 위해서만 사용하기 때문에 특별한 로직을 가지고 있지 않고 getter/setter 메소드만 갖는다. public class UserDto { private String name; private int age; public UserDto(String name, int age) { this.name = name; this.age = age; } public String getName() { return this.name; } public void setName(String name) { this.name = name; } public int getA..
-
[Java] 매개변수(Parameter)와 인수(Argument)Programming/Java 2021. 7. 22. 00:32
항상 인자, 인수, 매개변수 등등 언어들의 차이를 무시하고 혼용하며 사용해 왔다. 이번 기회에 간단히 차이점을 알아보고 정리해두려 한다. public int add (int a, int b) { return a + b; } 평범한 java 메소드이다. a와 b를 단순히 더하기 위한 용도로 선언하였다. 여기서 int a와 int b가 나타내는 것은 매개변수를 의미하는 Parameter이다. add(3, 4); 위에서 선언한 add 메소드를 실행한 문장이다. 여기서 3, 4는 인수를 의미하는 Argument이다. argument는 실제 메소드가 호출될 때 매개변수에 담기는 값이다.
-
[JAVA] Arrays.asList()Programming/Java 2021. 7. 18. 16:50
java.util.Arrays에는 배열을 조작하기 위한 static method들이 모여 있다. Arrays (Java SE 11 & JDK 11 ) Compares two int arrays lexicographically over the specified ranges. If the two arrays, over the specified ranges, share a common prefix then the lexicographic comparison is the result of comparing two elements, as if by Integer.compare(int, int), at a rel docs.oracle.com 그 중에 배열을 List로 바꾸는데 편리하게 사용할 수 있는 Arrays...
-
[JAVA] 코드를 올바르게 드러내는 방법Programming/Java 2021. 7. 16. 18:03
자바 코딩의 기술 6. 올바르게 드러내기 코드는 꼭 테스트하라. 아니면 사용자가 하게 된다. — 데이브 토마스, 앤드류 헌트 인간은 모두 실수를 한다. 얼마나 뛰어나든, 교육을 얼마나 잘 받았든, 경험이 얼마나 풍부 하든 가끔 버그가 있는 코드를 작성한다. Java에는 내장된 테스트 지원이 없지만 그 역할은 JUnit 프레임워크가 대신한다. JUnit 프레임워크는 테스트를 자동으로 실행하기 위한 사실상의 Java 표준이다. Java에서 단위 테스트 작성의 사실상 표준인 JUnit의 가장 최신 버전은 JUnit5이다. 테스트 정의를 위해서는 메소드위에 @Test 애노테이션을 추가하면 실행이 가능하다. 6.1 Given-When-Then으로 테스트 구조화 Person.java public class Pers..
-
[Java] Integer.parseInt(), Integer.valueOf()Programming/Java 2021. 3. 17. 10:53
알고리즘 문제 해결을 위해 문자열을 정수형태로 바꾸려 할 때 문득 Integer.parseInt()와 Integer.valueOf()의 차이가 뭔지 궁금하였다. 우선 Integer.parseInt 메소드와 Integer.valueOf 메소드의 코드를 살펴보았다. Integer.parseInt public static int parseInt(String s, int radix) throws NumberFormatException public static int parseInt(CharSequence s, int beginIndex, int endIndex, int radix) throws NumberFormatException public static int parseInt(String s) throws ..
-
[Spring] Singleton ContainerProgramming/Java 2021. 1. 8. 21:42
Singleton Pattern에 문제점 1. 싱글톤 패턴 구현을 위한 부가적인 코드가 많이 들어간다. 예를 들면 static final intance, private 생성자 등 2. 의존관계에 있어서 클라이언트가 구체 클래스 자체에 의존하게 된다. DIP(의존 관계 역전의 원칙)를 위반하게 된다. 클라이언트가 구체 클래스에 의존하기 때문에 OCP(개방-폐쇄 원칙) 또한 위반할 가능성이 높다. 3. 테스트 작성이 어렵다. 4. 내부 속성을 변경하거나 초기화하기 어렵다. 5. private 생성자이기 때문에 자식 클래스를 만들기 어렵다. 유연성 또한 떨어진다. Spring에서 사용하는 Spring container는 singleton pattern에 문제점을 해결하고 객체 인스턴스를 singleton으로 ..
-
Java란?Programming/Java 2021. 1. 3. 22:41
Java란? Java Java는 1991년 썬 마이크로시스템즈의 제임스 고슬링과 다른 연구원들이 개발한 객체 지향 언어이다. 처음에는 가전제품 내에 탑재하여 동작하는 프로그램을 위해 개발되었다. 최근에 와서는 웹 애플리케이션 개발에 가장 많이 사용되고 있는 언어이다. 제임스 고슬링은 처음 이 언어의 이름을 오크 나무의 Oak라고 불렀지만 이미 Oak라는 상표가 등록되어 있었기 때문에 후에 Java로 개명한 후 출시하였다. 2009년 데이터베이스로 유명한 오라클 사는 선마이크로시스템즈를 인수하여 현재는 오라클에서 자바를 제공하고 있다. https://www.oracle.com/kr/java/ Java의 특징과 장점 1. 객체 지향 언어 캡슐화: 객체를 캡슐로 감싸서 내부를 보호하고 볼 수 없게한다. 외부와..
-
Singleton Pattern 싱글톤 패턴Programming/Java 2020. 12. 30. 21:49
Singleton Pattern singleton pattern은 클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 design pattern이다. 생성된 객체는 어디에서든지 참조 할 수 있다. 그렇기 때문에 멀티 스레드 환경에서 다수의 스레드가 해당 객체를 사용하기 때문에 Thread-safe가 보장되어야 한다. Java에서 singleton pattern을 생성하는 방법 다양하다. Eager initialization public class Singleton { private static final Singleton instance = new Singleton(); public static Singleton getInstance() { return instance; } private Singlet..