본문 바로가기

TIL

(56)
2022/02/17 TIL 스터디 자료 준비 일급 컬렉션에 대해 발표를 하게 되어 발표자료를 준비하게 되었다. 서적이나 강의에서 접해보지 못해 주로 블로그 글을 참고해서 아쉬운 부분이 있었는데 직접 구현해보니 이해도가 올라간 기분이었습니다. 클린 아키텍처 17장 : 경계 선긋기 경계선을 긋는 행위는 결정을 늦추고 연기하는 데 도움이 된다. 책에서는 데이터베이스를 결정하는 행위를 상당기간 미루고 서비스를 개발했고, 미루는 동안 디비와 관련된 문제들을 다룰필요가 없어 효율적으로 일했다는 예시가 나온다. 공감이 가는 부분이었다. 사실 백엔드 개발을 할 때도 당장 디비가 필요하지 않고 stub을 사용해서 만들고 추후에 DB와 연동하면 효율적이기 때문이다. 클린 아키텍처 18장 : 경계 해부학 서로의 영역에 침범하지 않은 채 자신만의 컴포..
2022/02/16 TIL UPDATE, DELETE with join SQL문을 작성할 때 join을 사용해서 UPDATE와 DELETE를 사용하고 싶은 경우가 있는데 막상 작성해보니 작성이 잘 되질 않아 이번 기회에 정리하게 되었습니다. UPDATE UPDATE Table1 T1 JOIN Table2 T2 on T1.id= T2.t1_id SET T1.name = 'change name' WHERE T1.city = 'seoul' DELETE DELETE T1 FROM Table1 T1 LEFT JOIN Table2 T2 ON T1.id = T2.t1_id WHERE T2.id = 5 Java Study : 일급콜렉션 일급 콜렌션에 대해 정리하게 되는 계기가 되었습니다. 일급 컬렉션을 잘 사용하기 위해서는 DDD에 대한 이해가..
2022/02/15 TIL Wrapper Class 정리 이번주 스터디 주제 중 Wrapper Class가 있었고 간략하게 정리를 했다. 왜 필요한지 한번 더 생각해 보게 되어 좋았고, 아는 내용을 제대로 알고 있는지 생각해 보게 되는 좋은 계기였다.
2022/02/14 TIL 클린 아키텍처 16장 : 독립성 목표는 즉각적인 배포이다. 오늘도 회사에서 작업 단위가 큰 PR을 요청받았는데 컨트롤하기 힘든 conflict가 발생해서 힘들었던 경험이 있다. 대화를 하며 어떻게 해결할 수 있을지 얘기를 했었다. 뛰어난 아키텍트라면 변경을 예측하여 큰 무리 없이 반영할 수 있도록 만들어야 한다는 점이다. 레거시 코드를 수정할 때 유연하지 못해 불편함을 느꼈지만, 오래전에 작성된 나의 코드를 봐도 그런 경험이 있다. 독립성을 가진 영역을 잘 나누면 유연성이 올라간다는 것을 알게 되었으니 이를 천천히 실천해보고 싶다. AWS Elastic Beanstalk 배포 설정 배포 할 때 몇 가지 옵션이 있는데 오늘 트래픽 분할 이라는 방법을 알게 되었다. 이는 배포하는 동안 기존의 인스턴스 구성을..
2022/02/13 TIL 마틴 파울러의 Continuous Integration From this I learned a common story of software projects: integration is a long and unpredictable process. 마틴 파울러도 처음으로 큰 프로젝트를 처음 접했을 때 통합이란 것이 오래 걸리고 예측할 수 없는 과정이라고 생각했다. The term 'Continuous Integration' originated with Kent Beck's Extreme Programming development process, as one of its original twelve practices CI란 용어는 켄트 벡의 익스트림 프로그래밍에서 나온 용어라는 것을 알게..
2022/02/12 TIL 클린 아키텍처 14장 : 컴포넌트 결합 개발보다 통합에 드는 시간이 늘어나면서 팀의 효율성도 서서히 나빠진다. git-flow 보다 github-flow 같은 것들을 선택하는 사람이 늘어나는 이유인 것 같다. 실제로 회사에서 develop 브랜치를 없애며 생산성이 올라가는 것을 경험했기에 공감 가는 내용이었다. 순환 참조의 문제성 항상 동일한 시점에 배포해야 한다. 테스트가 어려워진다. 어떤 순서로 빌드해야 하는지 파악할 수 없다. (사실상 올바른 순서가 없다.) 해결 방법 의존성 역전 새로운 컴포넌트 만들기 아직 순환 참조 문제로 어려움을 겪었던 적은 없다. 하지만 이번 기회에 다시 한번 순환 참조에 대해 생각해 볼 수 있어서 좋았다. 백발의 개발자를 꿈꾸며 시간이 없는지 실력이 없는지 생각해보자 시간..
2022/02/11 TIL The RED : Scope, Closure Scope : 변수에 접근할 수 있는 범위 Lexical scope : 중첩 함수가 있을 때 내부 함수에서 외부 함수 변수에 접근할 수 있다. Closure : lexcical scope를 포함하는 함수 예제) @Test void test_closure(){ Supplier supplier = getStringSupplier(); assertThat(supplier.get()).isEqualTo("HelloWorld"); } private Supplier getStringSupplier() { String hello = "Hello"; Supplier supplier = () -> { String world = "World"; return hello + wor..
2022/02/10 TIL The Red : Stream FlatMap Stream이 중복되어 있을 때 사용한다. Stream flatMap(Function
2022/02/09 TIL The Red : Stream Map 매개변수로 Function 인터페이스를 받기 때문에 apply 라는 메소드에 할당한다. Stream map(Function
2022/02/08 TIL The Red : STREAM Filter 내부가 Predicate로 되어있기 때문에 내부적으로 boolean 값에 따라 처리한다. Stream filter(Predicate