일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Spring
- 파이썬
- 큐
- Network
- Eclipse
- 디자인패턴
- 프로그래머스
- tcp
- Python
- DesignPattern
- functional programming
- exception
- 람다 칼큘러스
- Pattern
- Collection
- 겨울카카오인턴
- design-pattern
- 백준
- JavaScript
- 로버트마틴
- 함수형 프로그래밍
- JDBC
- 스택
- javscript
- Java
- Collections
- lambda calculus
- Rails
- 자바
- solid
- Today
- Total
목록이것저것 (11)
개발자 노트
서론 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. 프로그램이 실행하는 중에 일반적인 흐름을 방해하는 이벤트를 의미합니다. 허허; 일반적인 흐름이 무엇일까요? 전 다음처럼 일반적인 흐름을 정의했습니다. 다음 상황을 가정해보죠..
상위 주제 exception handling 여정 참고 https://opentutorials.org/course/2598/14199 https://en.wikipedia.org/wiki/Standard_streams https://en.wikipedia.org/wiki/Redirection_(computing) 정의 redirection은 interprocess communication(IPC)의 한 형태입니다. 대부분 command line interpreter에서 가지는 함수이지요. 이전에 콘솔에 입력된 데이터가 어떻게 app으로 전달될까? 의 고민에서 나온 그 방법입니다. Cat 사실 정의와 설명은 생활코딩님이 너무 잘 설명해주시니 링크로 대체하겠습니다. https://opentutorials.o..
상위 주제 exception handling 여정 상황 - 간단한 입출력 프로그램 app에서 키보드의 입력을 받는다. app에서 입력받은 값을 console로 출력한다. 이 앱을 console에서 실행한다. 추가로 과정을 정밀히 분석하기 위해서 pid도 출력합니다. 코드 public class App { public static void main(String[] args) { printPid(); Scanner scanner = new Scanner(System.in); while (scanner.hasNext()) { System.out.println(scanner.next()); } } private static void printPid() { long pid = ProcessHandle.curren..
첫걸음 exception은 예외 상황이라 볼 수 있습니다. oracle docs 발췌 An exception is an event, which occurs during the execution of a program, that disrupts the normal flow of the program's instructions. 따라서 개발자가 exception이 발생한 상황을 이해할 수 있도록 exception 메세지를 제공해주어야 합니다. 또한, API를 Call한 클라이언트에게는 개발자와는 다른 메세지를 전달해줄 수 있어야 하죠. 그래서 문제를 정리하면 다음과 같았습니다. 개발자가 어디에서 log를 볼 수 있는지. 사용자에게 어떻게 내부 메세지를 분리해서 전달해줄 수 있는지 이해하기 쉬운 excepti..
개요 아키텍쳐에 대해 고민했는데요, 추상화에 의존하는 부분을 어중간하게 알고 있는 것 같았습니다. 머리에 구체적으로 그려지지 않았죠. 그러다가 스프링의 controller - service - model에서 서비스 인터페이스의 존재 이유에 대해 답변하는 날이 있었습니다. 스프링에서 왜 서비스 인터페이스를 사용해야 하는가? 아니면 왜 사용하지 말아야 하는가? 에 대해서 말이죠. 흐음... 물론 컨트롤러에서 특정 서비스에 의존하지 않고 다형성을 주기 위해 인터페이스를 작성할 수 있긴한데, 보통 gient service class가 생성되므로, 책임이 많아진 service에 대해서는 추상화가 의미가 없다.라고 했는데, 찝찝하더라구요. 아리까리한 느낌을 해결하기 위해 고민하다가 어중간함을 없애고 끝에 닿은 결론..
1. 그래프이론 데이터에 대해 관심을 가짐. entity가 속성(att)에 대한 값을 가진다는 건 당연하게 받아들였는데, 아니, 데이터간 관계를 포착하고 그 관계에 어떤 속성을 부여한다.라... 생각해보니깐 신기하다. 알고리즘 공부할 때나 학과공부할 때 그래프 이론을 주입받은 느낌. 2. 함수형 프로그래밍 3. 타입 이론 4. 컴구, 운영체제, 네트워크 5. RDB 6.스프링 7.JPA 8.오토마타
물리가 다르게 보이다 이상하게 들리실지 모르겠지만 요즘 취미로 학생들의 고등학교 수학과 물리 문제를 풀어주고 있습니다. 특히 물리는... 반년간 물리1을 공부를했고, 고3 초반에 모의고사 결과 2등급을 받았습니다. 시간을 꽤나 투자했음에도 2등급이 나왔고, 수능때 1등급을 맞기엔 시간이 부족하다 판단하여 그 이후 물리 공부를 그만두었습니다. 이때, 가장 어려워했던 파트가 역학이였습니다. 그런데 이상하게도 요즘 문제를 풀어주는데 역학 문제가 쉽고, 재밌게 느껴졌습니다. 도대체 어떤 일이 있었길래 이런 걸까요? 문제는 이론과 현상의 갭 사실 이와 유사한 경험이 처음은 아닙니다. 재수할 때 수학에서 유사한 경험을 했습니다. 확률을 공부할 때 일입니다. 당시 분명 맞는 것 같은데 틀리는 경우가 허다했습니다...
시간은 한정되어 있고 해야할 일은 정해져 있다. 모든 일을 소화하기 위해선 효율적으로 프로젝트를 진행하는 방향이 중요하다. 요근래 부스트코스 프로젝트를 빨리 진행하고 싶었다. 그런데 프로젝트의 복잡도가 증가하면서 단순히 앉아있는 것만으로는 진척이 되질 않았다. 내가 무엇을 위해 뭘 하고 있는지 모르겠고 막혀서 정처없이 헤매고 있을 때가 많다. 하루가 어떻게 지나갔는지 되돌아보면 목표를 구체적으로 정하지 않았기 때문에, 방법을 구체적으로 정하지 않았기 때문에, 어떻게 진행되고 있는지 일정 시간마다 피드백하지 않았기 때문에 비효율적이였다. 어떻게 구체화하는지에 대해 방법에 대해선 차차 적어갈 예정이다. 주제만 적어보면 다음과 같다. -특정 문제가 막혔을 경우, 내가 어떻게 했는지 추상화하여 작성한 후 어느 ..