본문 바로가기

개발자 스터디91

[TDD] 스터디 3주차 (테스트 반복, 순서 지정, Extension 관련) 스터디 메인 페이지 * 책 내용의 1,2부는 책을 따라 실습하는 내용이므로 정리하는게 의미 없다고 판단되어 다른 스터디와 달리 책 내용은 정리하지 않습니다. 스터디에서 책 이외로 나온 내용만 정리했습니다. ⚈ 예를들어 시간 조건을 두고 테스트가 필요한 경우, 아래와 같은 테스트는 실행할때마다 성공할수도 있고 실패할수도 있다. @Test @DisplayName("1000만까지의 짝수의 합은 1ms 이내에 통과해야 한다.") void test() { Study study = new Study(); long sum = assertTimeoutPreemptively( Duration.ofMillis(1) ,() -> study.sumEvenNumbers(10000000) ,() -> "1000만 이하의 짝수의 .. 2023. 1. 10.
[TDD] 스터디 2주차 (JUnit 관련 내용) 스터디 메인 페이지 * 책 내용의 1,2부는 책을 따라 실습하는 내용이므로 정리하는게 의미 없다고 판단되어 다른 스터디와 달리 책 내용은 정리하지 않습니다. 스터디에서 책 이외로 나온 내용만 정리했습니다. ⚈ IntelliJ 에서 JUnit 테스트는 Gradle로 실행하는 방법과 JUnit으로 실행하는 방법이 있다. Gradle 사용 시 기본 실행은 Gradle로 실행된다. JUnit으로 실행하려면 Edit Configurations 에서 설정을 추가해서 실행하면 된다. 큰 차이는 없는데, Gradle로 실행 시엔 BUILD SUCCESSFUL 같은 그래들 메시지가 붙긴한다. 다만 그래들에서 설정할 수 있는 부분들이 있고, IDE 뿐 아니라 서버 환경에서도 동일하게 쓸 수 있으므로 그래들 쓸꺼면 그래들로.. 2023. 1. 9.
[오브젝트] 11장. 합성과 유연한 설계 스터디 메인 페이지 목차 - ☆ 표시가 붙은 부분은 스터디 중 나온 얘기 혹은 제 개인적인 생각이나 제가 이해한 방식을 적어놓은 것으로, 책에 나오지 않는 내용입니다. 따라서 책에서 말하고자 하는 바와 다를 수 있습니다. - 모든 이미지의 출처는 오브젝트(조용호 저) 책 입니다. 10장과 연관된 내용으로, 10장 부터 봐야 이해 가능합니다. CHAPTER 11. 합성과 유연한 설계 ⚈ 상속(Inheritance)과 합성(Composition) 객체지향 프로그래밍에서 가자 널리 사용되는 코드 재사용 기법이다. 상속 : 부모 클래스와 자식 클래스를 연결해서 부모 클래스의 코드를 재사용. 부모 클래스와 자식 클래스 사이의 의존성은 컴파일타임에 해결된다. =is-a 관계 합성 : 전체를 표현하는 객체가 부분을 .. 2023. 1. 4.
[오브젝트] 10장. 상속과 코드 재사용 스터디 메인 페이지 목차 - ☆ 표시가 붙은 부분은 스터디 중 나온 얘기 혹은 제 개인적인 생각이나 제가 이해한 방식을 적어놓은 것으로, 책에 나오지 않는 내용입니다. 따라서 책에서 말하고자 하는 바와 다를 수 있습니다. - 모든 이미지의 출처는 오브젝트(조용호 저) 책 입니다. CHAPTER 10. 상속과 코드 재사용 ⚈ 코드 재사용 전통적인 패러다임 : 코드를 복사한 후 수정 객체지향 : 코드를 재사용하기 위해 '새로운' 코드를 추가. 객체지향에서 클래스를 재사용하는 전통적인 방법은 새로운 클래스를 추가하는 것. ⚈ 이번 장에서는 상속을 통한 코드 재사용을 알아보고, 11장에서 코드를 효과적으로 재사용할 수 있는 합성을 알아본 후 상속과 합성의 장단점을 비교하게 된다. 01 상속과 중복 코드 ⚈ 중복.. 2023. 1. 3.
[클린코드] 8장. 경계 스터디 메인 페이지 - ☆ 표시가 붙은 부분은 스터디 중 나온 얘기 혹은 제 개인적인 생각이나 제가 이해한 방식을 적어놓은 것으로, 책에서 말하고자 하는 바와 다를 수 있습니다. - 모든 이미지의 출처는 클린 코드(로버트 C. 마틴 저) 책 입니다. 8장 경계 ⚈ 외부 코드 사용하기 패키지 제공자나 프레임워크 제공자는 적용성을 최대한 넓히려 애쓴다. 사용자는 자신의 요구에 집중하는 인터페이스를 바란다. 그러다보니 외부 코드를 그대로 사용하면 필요하지 않은 기능까지 제공하게 된다. 이러한 경계 인터페이스를 이용할 때는 이를 이용하는 클래스나 클래스 계열 밖으로 노출되지 않도록 주의한다. ☆ 약간 이 경우와 주제가 다른 내용이긴 하지만, 자바에서도 필요하지 않은 기능까지 제공하는 경우가 있다. e.g. 자바.. 2023. 1. 2.
[클린코드] 7장. 오류 처리 스터디 메인 페이지 - ☆ 표시가 붙은 부분은 스터디 중 나온 얘기 혹은 제 개인적인 생각이나 제가 이해한 방식을 적어놓은 것으로, 책에서 말하고자 하는 바와 다를 수 있습니다. - 모든 이미지의 출처는 클린 코드(로버트 C. 마틴 저) 책 입니다. 7장 오류 처리 ⚈ 뭔가 잘못되면 바로 잡을 책임은 바로 우리 프로그래머에게 있다. ⚈ 오류 처리 코드로 인해 프로그램 논리를 이해하기 어려워진다면 깨끗한 코드라 부르기 어렵다. ⚈ 오류 코드보다 예외를 사용하라. ⚈ Try-Catch-Finally 문부터 작성하라 try 블록은 어떤 면에서 트랜잭션과 비슷하다. try 블록에서 무슨 일이 생기든지 catch 블록은 프로그램 상태를 일관성 있게 유지해야 한다. ☆ finally는 try 부분이 정상처리되든지 .. 2023. 1. 2.
[클린코드] 6장. 객체와 자료 구조 스터디 메인 페이지 - ☆ 표시가 붙은 부분은 스터디 중 나온 얘기 혹은 제 개인적인 생각이나 제가 이해한 방식을 적어놓은 것으로, 책에서 말하고자 하는 바와 다를 수 있습니다. - 모든 이미지의 출처는 클린 코드(로버트 C. 마틴 저) 책 입니다. 6장 객체와 자료 구조 ⚈ ☆ 이 책에서 얘기하는 '자료 구조'는 큐, 스택 이런게 아니라 '데이터만 있는 클래스'를 의미하는 것 같다. C 계열의 struct로 생각하면서 책을 보면 말이 맞다. 이하의 struct의 경우 예를들어 자바로 생각하면 아래와 같이 나타낼 수 있을 것이다. 함수 없이 데이터만 있는 클래스 구조로 생각하고 보면 책이 읽히니 그렇게 생각하면 될 것 같다. typedef struct { int* arr; int rear; int cap.. 2023. 1. 2.
[클린코드] 5장. 형식 맞추기 스터디 메인 페이지 - ☆ 표시가 붙은 부분은 스터디 중 나온 얘기 혹은 제 개인적인 생각이나 제가 이해한 방식을 적어놓은 것으로, 책에서 말하고자 하는 바와 다를 수 있습니다. - 모든 이미지의 출처는 클린 코드(로버트 C. 마틴 저) 책 입니다. 5장 형식 맞추기 ⚈ 술 취한 뱃사람 한 무리가 짜놓은 듯 어수선해 보인다면 독자들은 프로젝트의 다른 측면도 똑같이 무성의한 태도로 처리했으리라 생각할 것이다. -> ☆ 완전 공감되는 내용이었다. 예전에 뭔 외주줘서 진행한 프로젝트를 짬처리 받은적이 있다. 그런데 저런식이다. 코드 형식을 논하기 이전에 뭔 띄어쓰기도 제대로 안되어있고, 최대한 완벽해야 할 공통코드에서 꽤 많이 사용된 isEmpty가 == "null" 이러고 있다. 돌아가는게 신기하다 ㅋㅋ. .. 2023. 1. 2.
[오브젝트] 9장. 유연한 설계 스터디 메인 페이지 목차 - ☆ 표시가 붙은 부분은 스터디 중 나온 얘기 혹은 제 개인적인 생각이나 제가 이해한 방식을 적어놓은 것으로, 책에 나오지 않는 내용입니다. 따라서 책에서 말하고자 하는 바와 다를 수 있습니다. - 모든 이미지의 출처는 오브젝트(조용호 저) 책 입니다. CHAPTER 09. 유연한 설계 ⚈ 8장에서 살펴본 다양한 의존성 관리 기법들을 원칙이라는 관점에서 정리하는게 9장이다. ☆ 마침 스터디 순서상 이번주차에 8장과 9장이었는데, 같이보게 되서 매우 다행이었다. 8장 내용 중복 겸 +@로 설명해주는게 9장이다. 특히 평소 헷갈렸던 부분들을 해결해주는 부분이 많아서 개인적으로 많이 좋았던 장이다. SOLID 중 OCP도 다른 글들 봐도 명확히 이해가 안됬는데 이 책에 답이 있었다... 2022. 12. 22.
[오브젝트] 8장. 의존성 관리하기 스터디 메인 페이지 목차 - ☆ 표시가 붙은 부분은 스터디 중 나온 얘기 혹은 제 개인적인 생각이나 제가 이해한 방식을 적어놓은 것으로, 책에 나오지 않는 내용입니다. 따라서 책에서 말하고자 하는 바와 다를 수 있습니다. - 모든 이미지의 출처는 오브젝트(조용호 저) 책 입니다. CHAPTER 08. 의존성 관리하기 ⚈ ☆ 마침 운좋게 스터디에서 8장, 9장이 같은 주차에 들어갔다. 8장과 9장 자체가 연계되는거라 운이 좋았다. 객체에서 자기 자신이 사용할걸 직접 생성하는게 맞는지, 쓰는쪽에서 주입해주는게 맞는지와 유연성있게 짜면 코드가 복잡해지는 느낌이라는게 고민이었다. 8장, 9장에서 그 부분을 설명해줘서 평소 궁금하던 부분이 해결되어 좋았다. ⚈ 8장은 충분히 협력적이면서도 유연한 객체를 만들기 위.. 2022. 12. 22.