일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- JDBC
- 자바
- solid
- exception
- 프로그래머스
- Collection
- Spring
- 스택
- Pattern
- Rails
- functional programming
- JavaScript
- Collections
- 로버트마틴
- DesignPattern
- 함수형 프로그래밍
- 람다 칼큘러스
- Eclipse
- design-pattern
- Java
- javscript
- 큐
- 파이썬
- lambda calculus
- Network
- 디자인패턴
- tcp
- Python
- 겨울카카오인턴
- 백준
- Today
- Total
목록Java (13)
개발자 노트
Stream API peek? 문서에서 왜 Stream.peek을 주로 디버깅 용으로 사용하라고 했는가? 대하여 알아보겠습니다. 참조 Stream API peek은 Stream api의 한 부분이므로 Stream API 문서부터 살펴보도록 하겠습니다. stream api의 문서를 보시면 filter, map등과 같은 method에 전달되는 함수는 올바른 동작을 위하여 다음 2가지 제약조건을 만족해야 한다고 합니다. non-interfering이여야 할 것 대부분의 경우, 상태를 지니지 말아야 할 것 여기서, non-interfering에 주목해보겠습니다 non-interfering interfering의 사전적 의미 간섭하는, 참견하기 좋아하는 문서에서 말하는 non-interfering stream p..
관련 글 java docs Collection 정리[상위 문서] Set 인터페이스란? 중복된 elements를 담지 않는 Collection 특징 수학의 집합을 모델 삼음 오직 Collection의 메서드만 상속받고, 중복된 element를 금지하는 제약만 추가. 이미 collection에 존재하는 element를 추가할 경우 add method의 반환 값은 false이다. equals hashCode operation에 대한 강한 제약사항을 두었음. Set 구현체의 타입이 다르더라도 Set inatance간 의미있는 비교 가능. 두 Set간 동일한 elements를 지닐 경우, 두 set은 동일하다고 한다. 다용도 Set 구현체들 HashSet hash table에 elements를 저장 가장 성능이 ..
관련 글 java docs Collection 정리[상위 문서] Collection이란? elements들의 그룹을 나타냅니다. Collection interface 가장 일반화된 collections를 전달하는데 사용됩니다. 예 - HashSet의 conversion consturctor public HashSet(Collection c) boolean addAll(Collection c) boolean retainAll(Collection c) void clear() array operations를 위한 메서드 Object[] toArray() T[] toArray(T[] a) Stream API를 위한 method Stream stream() Stream parallelStream() Collect..
Implementations 관련 글 java docs - https://docs.oracle.com/javase/tutorial/collections/implementations/index.html 상위 목록(collection 정리) - https://jurogrammer.tistory.com/172 서론 구현체는 collections를 저장하는데 사용되는 data objects를 의미합니다. 이 구현체들은 앞서 말한 interfaces를 구현했죠. 종류 다음 구현체들에 대해 설명할 예정입니다. General-purpose implementations 일상적으로 사용할 수 있는 구현체들입니다. Special-purpose implementations 특수한 상황에서 사용하는 구현체들입니다. 일반적이지..
관련 글 https://jurogrammer.tistory.com/172 Interfaces https://docs.oracle.com/javase/tutorial/collections/interfaces/index.html 개요 core collection의 interfaces는 서로 다른 타입의 collections들을 캡슐화합니다. 따라서 서로 다른 collections을 detail을 신경쓰지 않고 조작할 수 있게 되지요. collection interface는 Java Collection Framework의 근간이라고 보시면 됩니다. Interface 챕터에서는 collection interfaces의 효율적인 사용 방법에 대한 일반적인 가이드라인을 제공해줄 예정입니다. 유의할 점 Map은 Co..
서론 logging은 비즈니스 로직을 처리를 위한 코드라기 보다는 모니터링을 위한 코드라고 생각됩니다. 그래서 비즈니스 로직 중간에 나타나는 logging이 매우 보기 불편했죠. Spring이 AOP를 제공해준다고 하지만... Spring에서 구현한 답지를 보지 않고 직접 구현해보고 싶었습니다. 따라서 이번 시간에는 어떻게 해야 기가막힌 logging aop를 할까... 그 고찰을 적어보겠습니다. 상황 person class의 sayHello 메서드를 작성하고, main에서 sayHello method를 호출합니다. 이때, framework를 통해서 person 객체를 전달 받는다고 하겠습니다. Person public class Person { private String firstName; privat..
상위 주제 exception handling 여정 제가 잘못 사용했던 냄새나는 코드를 준비해보았습니다. 상황 주문 번호를 받아 해당 주문서 내용을 반환해주는 기능입니다. 만약 클라이언트가 요청하는 주문 번호가 존재하지 않으면 error를 발생시키고 해당 주문이 없음을 전해주어야 하지요. 코드 Controller package com.company.exceptiontest; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class Controller { private final Service service; private final Logger logger = LoggerFactory.getLogger(this.getClass()); pu..
상위 주제 exception handling 여정 참고 자료 clean code effective java oracle java docs 이번엔 exception이 무엇인지 exception을 어떻게 처리해야할 지를 말씀드려보겠습니다. exception이란? oracle에서 어떻게 정의하는지 보죠 An exception is an event, which occurs during the execution of a program, that disrupts the normal flow of the program's instructions. 프로그램이 실행하는 중에 일반적인 흐름을 방해하는 이벤트를 의미합니다. 허허; 일반적인 흐름이 무엇일까요? 전 다음처럼 일반적인 흐름을 정의했습니다. 다음 상황을 가정해보죠..
출처 https://docs.oracle.com/javase/specs/ (오라클 Java SE 8) 목표 Java SE 8의 Exception에 알아보고, 프로그래밍 관점에서 Exception을 이해하자. (형식이 아닌 본질적인 부분) 들어가기 앞서서... 개요 프로그램이 자바 프로그래밍 언어의 의미적인 제약을 위반할 경우에 JVM은 프로그램에 exception이라는 에러를 전송합니다. 자바는 의미적인 제약이 위반되거나 또는 프로그램에 의해 제어(control)가 전이될 수 있습니다. exception이 발생한 지점으로부터 프로그램이 명시한 지점으로의 전이 말이죠. exception은 exception이 발생한 지점으로부터 던져졌다고 불릴 수 있으며, 통제가 전이된 지점에서 잡혔다고 볼 수 있습니다. ..
Spring Field Injection에 의한 순환 참조 오류 참고자료 edwith 도비양말 리뷰어님 https://www.mimul.com/blog/di-constructor-injection/ (DI가 필요한 이유) https://madplay.github.io/post/why-constructor-injection-is-better-than-field-injection (생성자 주입을 필드주입 보다 권장하는 이유) https://d2.naver.com/helloworld/1230 (JVM Internal) 개요 edwith 강의에서 필드 주입을 하는 방식으로 DI를 구현하여 프로젝트 제출시 Field Injection을 하여 제출하였습니다. 하지만 리뷰어님께서 Constructor Injectio..