목록자바 (32)
오봉이와 함께하는 개발 블로그
성숙한 클래스 내 코드가 그렇게 이상한가요? 라는 책을 보며 알지 안전한 클래스를 생성하는 방식에 대해 정리한다. 사실 이론적인 내용으로 알지 못 하지만, 습관적으로 다들 안전한 코드를 작성하고 있다 생각하는데 간혹 무심결에 작성한 코드가 안전하지 않은 코드를 작성할 수 있고, 혹은 정말 모르고 작성한 코드가 안전하지 않은 코드가 될 수 있기 때문에 누군가 보고 도움이 되길 바라는 마음 + 공부의 목적으로 글을 작성한다. 생성자 유효성 검사 데이터 클래스를 생성할 때 무심결에 다음과 같이 사용할 수 있다. class Money { int acmount; } Money money = new Money(); money.setAmount(100); 이렇게 사용 하면 따로 값을 할당하지 않을 경우 문제가 발생할..
Reflection Spring을 사용하면 Reflection을 자주 접할 수 있다. 하지만 초보 개발자들에겐 생소한 내용이라 생각한다.(작성자도 잘 몰라서 정리하고 있습니다..) 이 글은 간단하게 Reflection에 대해 알아보는 글이다. 자세한 내용은 다음 링크를 참조하자 https://www.baeldung.com/java-reflection https://docs.oracle.com/javase/tutorial/reflect/ Reflection API? Reflection API란 구체적인 타입을 알지 못해도 그 클래스의 정보(메서드, 타입, 변수 등)에 접근할 수 있게 해주는 API다. 구체적인 타입을 알지 못 하는데 어떻게 클래스에 접근할 수 있는 건지 대충 들으면 이해하기 어렵다 생각하고..
Stream의 기본 개념 자바를 사용하며 stream을 사용한 것이 최근 일이다. 그동안 이 좋았던 라이브러리를 왜 사용하지 않았는지 모르겠다. 그래서 stream에 대해 공부를 해보려고 한다. Stream? stream 들어보기만 해도 무언가 흐를 거 같은 느낌이 팍팍 든다. 그럼 무엇이 흐를까? 당연히 데이터가 흐른다. stream을 통해 데이터를 하나씩 흐르게 하고, 메서드 체인 형식으로 필요한 메서드를 사용하면 원하는 값으로 편하게 가공할 수 있다. 람다식으로 요소 처리 코드를 제공하기 때문에 가독성이 좋다. 그냥 반복문을 통해 사용하는 것과 다른 점은 가독성이 좋기 때문에 유지보수에 용이하다. 또 내부 반복자를 사용하기 때문에 병렬 처리가 쉽다. public class Main { public ..
정적 팩토리 메소드 정적 팩토리 메서드란 객체 생성의 역할을 하는 클래스 메소드라고 할 수 있겠다. 아래 예시 코드를 보자 public class User { private String id; private String password; public User(String id, String password) { this.id = id; this.password = password } public static User createUser(String id, String password) { return new User(id, password); } } 위 코드처럼 객체를 new 생성자를 통해 생성하는 것이 아니라, 메소드를 통해서 객체를 생성하는 것을 정적 팩토리 메소드라고 한다. 가장 중요한 것은 이것을..
Algorithmday_3 정리 (2021.11.30 화요일) Collection 클래스 java.util. 패키지에 포함된 클래스 컬렉션을 다루는 유용한 메소드 지원 sort() : 정렬 reverse() : 반대로 정렬 max() / min() : 최대값 / 최소값 binarySearch() : 검색 Collection 예제 CollectionEx1.java public class CollectionEx1 { public static void main(String[] args) { ArrayList list = new ArrayList(); list.add("트랜스포머"); list.add("스타워즈"); list.add("매트릭스"); list.add("터미네이터"); list.add("아바타");..