본문 바로가기

Spring19

팻 핑거와 테스트 코드 최근에 투자에 관심이 생겨서 주식 관련 유튜브를 종종 보고 있다. 그러다 보니 주식 시장에서의 재미있는 에피소드도 알게 되었는데, 그중 인상깊은 사건을 먼저 하나 소개하고 싶다. [황당 실수로 한맥투자증권 파산까지… 증시 강타한 ‘팻핑거’] 황당 실수로 한맥투자증권 파산까지… 증시 강타한 ‘팻핑거’ 케이프증권은 올 2월 62억 손실 獨·日서도 주문실수로 주가 출렁삼성증권의 우리사주 배당 사고로 인해 이른바 ‘팻핑거’ 오류가 주목받고 있다. 증시 거래 담당자들이 주문을 넣으면서 실수 www.seoul.co.kr 2013년, 한맥투자증권은 선물 옵션 만기일에 이자율을 계산하고 있었다. 그 과정에서 직원이 타이핑 실수(아마도 칸을 비운 채 입력을 완료한 것이 아닐까?)를 했고, 잔여일을 365가 아닌 0으로 .. 2021. 5. 17.
9. Log4jdbc로 DB 로그 저장하기 코드 확인을 위해, 관련 PR 링크를 첨부한다. #17 Logback을 통해 DB 로그 남기기 by include42 · Pull Request #18 · include42/spring-books-diary Resolved: #17 github.com 간만에 돌아온 포스팅. 오늘은 다음의 목표를 이루기 위해 어떤 작업을 했는지 적어보려고 한다. Log4jdbc를 사용하여 DB 관련 로그를 수집한다. 수집한 로그를 필터링하여 필요한 로그만 출력한다. 로그를 파일로 남겨 문제 시 확인할 수 있도록 한다. 1. Log4jdbc Log4jdbc는 Log4j를 JDBC와 연결하여 사용하기 위해 만들어진 오픈소스 프로젝트이다. Log4jdbc의 깃헙 링크이다. arthurblake/log4jdbc log4jdbc .. 2021. 4. 1.
DTO 직렬화 과정에서 PropertyNamingStrategy 사용하기 프로젝트를 진행하면서 외부 서버와 통신할 일이 있는데, 이 과정에서 자잘한 스트레스를 받았다. 카카오에서 제공하는 Daum 검색 API로 책 관련 정보를 파싱받고 있다. 그런데, 여러 개의 도서 정보를 조회 시 주어지는 메타 정보 데이터가 다음과 같이 주어진다. "meta": { "is_end": true, "pageable_count": 1, "total_count": 1 } 변수명이 Snake Case로 선언되어 있다. 보통 변수명을 지을 때는, 다음과 같은 케이스를 많이 사용한다. 케밥 케이스 : 하이픈으로 단어를 연결한다. (예시 : is-end, pageable-count) 스네이크 케이스 : 밑줄 문자로 단어를 연결한다. (예시 : is_end, pageable_count) 카멜 케이스 : 첫.. 2021. 3. 4.
8. 로그 파일 만들기, 인터셉터 구현하기 코드 확인을 위해, 관련 PR 링크를 첨부한다. #5 로깅 구현 및 로깅을 위한 인터셉터 구현하기 by include42 · Pull Request #10 · include42/spring-books-diary Resolved: #5 실수로 Develop 브랜치에 커밋해 버려서, Revert 후 기능 브랜치에 다시 작성하였습니다. 이를 merge하는 방향으로 가고자 합니다. github.com 간만에 돌아온 포스팅. 오늘은 다음의 목표를 이루기 위해 어떤 작업을 했는지 적어보려고 한다. 서버에 들어온 요청/응답, 예외 발생 등에 대해 로그를 남긴다. 남긴 로그를 콘솔에서 확인한다. 로그를 파일로 남겨, 추후 배포 중 오류가 발생한 경우 확인할 수 있도록 한다. 1. 로깅이란 무엇인가? 로깅(logging.. 2021. 3. 3.
4. TDD 개발 : Read/delete 기능 만들어보기 kafcamus.tistory.com/7 이전 포스팅에 이어서, 오늘은 남은 기능들을 구현해 보는 시간을 가지려구 한다. 3. TDD 개발 : Create 기능 만들어보기 최근 프로젝트가 잠시 부진했다. 아무래도 아직은 본격적인 개발보다는 이전 학습 내용을 정리하면서 진행하고 있는지라 일정에 맞춰 기능이 하나씩 나오는 재미가 없어서 그런가보다. 이번주 kafcamus.tistory.com 어차피 도메인 설계도 아직 완성되지 않았고... 현재 만드는 내용은 실제 프로젝트에는 반영되지 않는 부분이다. 지금 진행중인 내용의 목적은, MVC 구조에서 TDD로 어떻게 개발하는지, 어떻게 테스트하는지 이전의 기억을 불러오고 나만의 기준을 정립하기 위해서이다. 그래서 오늘 리스트로 값을 전달받는 전체조회 기능, 삭제.. 2021. 2. 5.
3. TDD 개발 : Create 기능 만들어보기 최근 프로젝트가 잠시 부진했다. 아무래도 아직은 본격적인 개발보다는 이전 학습 내용을 정리하면서 진행하고 있는지라 일정에 맞춰 기능이 하나씩 나오는 재미가 없어서 그런가보다. 이번주 주중으로 ERD 설계를 해볼 생각인데, 이에 대해 추후 포스팅해보겠다. 설계가 나온 이후부터는 기능 구현에 대한 포스팅이 주가 될 것으로 보인다. ERD가 확정되기 전에, 먼저 간단한 도메인을 만들어서 MVC 구조에 대한 틀을 잡아보려고 한다. 간만에 개발하는 만큼, 학습 목적으로 진행하려고 한다. 오늘은 도메인 생성 기능을 TDD로 구현하는 것을 목표로 한다. 다음에는 조회와 삭제에 대한 컨트롤러/서비스 기능 구현, 그리고 validator 구현까지 진행해 보려고 한다. 먼저, 도메인을 작성해 본다. package com... 2021. 2. 2.
반응형