목록분류 전체보기 (192)
Lewis's Tech Keep
2주차 내가 만드려고 하는 것 : JPA 기반 백엔드 중복으로 들어간 createdAt, updatedAt을 보다가 예전에 이동욱님의 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 에서 봤던 Auditing을 한번 써 보면 좋을 것 같아서 써 보았다. 하지만 책의 좋은 소스를 쓰레기처럼 활용했다는 생각이 든 한 주다. 써보면서 확실히 느낀게 나는 JPA의 Core Concepts, 왜 JPA가 현재 트렌드가 되어가고 있는지 알지 못한다는 것이었다. [JPA Core Concepts] [JPA에 관한 기본적인 개인적으로 납득이 간 좋은 이유 - 이영한님] 이번 주에 내가 집중적으로 학습하고자 했던 것은 JPA Core Concepts, 영속성 컨텍스트, Auditing 이다. Study List Jpa ..
- 객체 그래프란 : 엔티티들은 보통 서로 연관되어 있는 관계를 가지고 있고 이를 연결하면 그래프로 표현이 가능하다. - 이후로 글을 더 쓰려고 이것 저것 찾아봤는데 Entity Graph 와 Objects Graph 가 같은 개념인지 아니면 다른 개념인지 그래서 JPA에 적용할 때 어떤지 없어서 보류하지만 아래 참고 링크들은 굉장히 좋은 글들이라 링크를 남겨둔다. 조금 더 정리한 후에 해보자. - 참고 링크 : https://www.entityframeworktutorial.net/entityframework6/save-entity-graph.aspx - 참고 링크 : https://engkimbs.tistory.com/835 - 참고 링크 : https://bros.tistory.com/m/16
내가 구현한 것 : TDD 기반 프로그램 구현 느낀 점 모호한 변수명은 모두가 헷갈릴 뿐이다. 실무에서는 어떤 느낌인지 동료나 상사에게 꼭 물어 볼 것 위의 코드 처럼 IntStream을 이용하면 더 효율적으로 넘버를 활용 할 수 있다. Stream API는 병렬 처리도 지원하기 때문에 멀티 cpu 코어에서 이득을 볼 수 있다. private static final Map abc = IntStream.rangeClosed(MIN_BOUND, MAX_BOUND) .mapToObj(Abc::new) .collect(Collectors.toMap(abc -> abc.number, Function.identity())); 설계 시에 작은 부분부터 체크했기에 설계적 측면에서는 큰 이슈가 없었다. 하지만 리스트의 ..
내가 구현하려던 것 : TDD 기반 프로그램 개인적으로 어려웠던 부분 Optional 을 어떻게 이용해야 할지 고민을 했다. (정말 부끄럽지만 써본 적이 없어서다.) 어떻게 쓰는 것이 바른 것인지 찾아보고 그에 대한 해답을 참고해서 하는 수준이지만 아직 Optional을 제대로 안다고 할 수 있을까..? -> 한번 더 찾아보고 정리할 것 Optional 참고 링크 1: https://johngrib.github.io/wiki/java-optional/ Optional 참고링크 2: http://homoefficio.github.io/2019/10/03/Java-Optional-%EB%B0%94%EB%A5%B4%EA%B2%8C-%EC%93%B0%EA%B8%B0/ 계속 자잘한 실수들이 나왔다. 한 줄에는 점..
3주차 3주차에는 api delete 메서드 사용했고 firebase transaction 이용하여 db 요청이 transactional 하게 이루어져야 할 때 어떻게 하는 지 알아보았다. 코딩하면서 스프링의 transactional의 동작을 자세히 몰라서 무서울 때가 많았다. 이번 역시 개념은 이해했더라도 firebase라이브러리의 runTransaction이 어떻게 동작하는 지 몰라서 무서웠다. 좀 더 공부해야한다. 참고 링크 https://firebase.google.com/docs/firestore/manage-data/transactions?hl=ko#web-version-9 확실히 소프트웨어 엔지니어링은 모르면 몸만 고생하는 게 아니고 몸과 뇌가 모두 고생해야 한다. 내가 구현한 것 delet..
2주차 최근 스터디를 우연히 두 개를 진행하게 되었다. (본인도 이렇게 될 줄은 꿈에도 몰랐다.) 노트를 남기지 않으면 개념이 섞일 것 같아 두려워서 PR을 TODO-LIST 형태로 정리하고 있었는데 스터디 영상을 리뷰 중에 글로 남겨보라는 코멘트가 있어서 남기려고 한다. 2주차에는 프로젝트의 메서드 정리 및 개선, 기본적인 router 이용 및 validation 진행이었다. 개요 및 주요 내용 DONE-LIST request 메서드(GET, POST, PUT)별 함수 분리 validate request parameter 하나로 합치기 validate exist doc (doc 존재 확인) validate correct owner (현재 doc owner 와 userId 가 같은 지) firebase ..
내가 구현하려던 것 : TDD 기반 프로그램 개인적으로 어려웠던 부분 null return 에 대한 것을 의식하면서 진행 (아직 체득화되지 않음) final 키워드 잊지않고 적용 (불변 객체로 만드는 것은 컴파일 시 이득뿐만 아니라 내부 상태가 변하지 않음이 결정되고 thread-safe 하기까지 하다!) https://mangkyu.tistory.com/131#:~:text=%EB%B6%88%EB%B3%80%20%EA%B0%9D%EC%B2%B4%EB%8A%94%20%EA%B8%B0%EB%B3%B8%EC%A0%81%EC%9C%BC%EB%A1%9C,%EB%A5%BC%20%EB%8B%A4%EC%8B%9C%20%EC%82%AC%EC%9A%A9%ED%95%A0%20%EC%88%98%20%EC%9E%88%EB%8..
내가 구현하려던 것 : 문자열 덧셈 계산기 개인적으로 어려웠던 부분 static으로 개발을 잘 안 해 봐서 뭔가 만들어도 best가 아니라는 느낌을 강하게 받음 static을 쓰면 메서드나 변수가 (내부 static 클래스 제외) 클래스에 붙는다. 프로그램 실행 시 생성되기 때문에 문제만 없다면 빠르다. 여러 번 같은 로직을 실행해야 하거나 같은 값을 유지할 필요가 있을 경우 생각한다. static 관련 https://vaert.tistory.com/101 parameterizedTest 이용법 https://kingds.tistory.com/40 https://gmlwjd9405.github.io/2019/11/27/junit5-guide-parameterized-test.html [Java] Stat..