본문 바로가기

Study116

[클린코드] 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도 다른 글들 봐도 명확히 이해가 안됬는데 이 책에 답이 있었다. 01 .. 2022. 12. 22.
[오브젝트] 8장. 의존성 관리하기 스터디 메인 페이지목차- ☆ 표시가 붙은 부분은 스터디 중 나온 얘기 혹은 제 개인적인 생각이나 제가 이해한 방식을 적어놓은 것으로, 책에 나오지 않는 내용입니다. 따라서 책에서 말하고자 하는 바와 다를 수 있습니다.- 모든 이미지의 출처는 오브젝트(조영호 저) 책 입니다. CHAPTER 08. 의존성 관리하기⚈ ☆ 마침 운좋게 스터디에서 8장, 9장이 같은 주차에 들어갔다. 8장과 9장 자체가 연계되는거라 운이 좋았다. 객체에서 자기 자신이 사용할걸 직접 생성하는게 맞는지, 쓰는쪽에서 주입해주는게 맞는지와 유연성있게 짜면 코드가 복잡해지는 느낌이라는게 고민이었다. 8장, 9장에서 그 부분을 설명해줘서 평소 궁금하던 부분이 해결되어 좋았다. ⚈ 8장은 충분히 협력적이면서도 유연한 객체를 만들기 위해 의.. 2022. 12. 22.
[클린코드] 4장. 주석 스터디 메인 페이지 목차 - ☆ 표시가 붙은 부분은 스터디 중 나온 얘기 혹은 제 개인적인 생각이나 제가 이해한 방식을 적어놓은 것으로, 책에서 말하고자 하는 바와 다를 수 있습니다. - 모든 이미지의 출처는 클린 코드(로버트 C. 마틴 저) 책 입니다. 4장 주석 ⚈ "나쁜 코드에 주석을 달지 마라. 새로 짜라." ⚈ 주석은 언제나 실패를 의미한다. 주석을 달 때마다 자신에게 표현력이 없다는 사실을 푸념해야 마땅하다. 주석은 거짓말을 한다. 주석은 오래될수록 코드에서 멀어진다. 프로그래머들이 주석을 유지하고 보수하기란 현실적으로 불가능하다. 주석은 나쁜 코드를 보완하지 못한다 ⚈ 코드에 주석을 추가하는 일반적인 이유는 코드 품질이 나쁘기 때문이다. 자신이 저지른 난장판을 주석으로 설명하려 애쓰는 대신에.. 2022. 12. 21.
[클린코드] 3장. 함수 스터디 메인 페이지 목차 - ☆ 표시가 붙은 부분은 스터디 중 나온 얘기 혹은 제 개인적인 생각이나 제가 이해한 방식을 적어놓은 것으로, 책에서 말하고자 하는 바와 다를 수 있습니다. - 모든 이미지의 출처는 클린 코드(로버트 C. 마틴 저) 책 입니다. 3장 함수 - 길이가 짧고, 이름이 좋고, 체계가 잡힌 함수를 만드는 방법 작게 만들어라! ⚈ 작은 함수가 좋다. ⚈ 이하와 같은 수준으로 줄여야 한다. public static String renderPageWithSetupsAndTeardowns(PageData pageData, boolean isSuite) { if (isTestPage(pageData)) { includeSetupAndTeardownPages(pageData, isSuite); .. 2022. 12. 20.
[TDD] 스터디 1주차 (기본적인 테스트 방법, 1~2장 정리) 스터디 메인 페이지 목차 - ☆ 표시가 붙은 부분은 스터디 중 나온 얘기 혹은 제 개인적인 생각이나 제가 이해한 방식을 적어놓은 것으로, 책에 나오지 않는 내용입니다. 따라서 책에서 말하고자 하는 바와 다를 수 있습니다. ☆ 스터디 킥오프 (테스트 관련 랜덤 팁) 이하 내용은 책 내용 스터디 들어가기 전에 스터디 팀원들끼리 공유한 내용이다. [ Octoping925님의 발표 자료 : https://github.com/Octoping925/TestCodePresent ] ⚈ 실제 구현부와 테스트쪽의 패키지, 클래스명 구조를 동일시 하는게 중요하다. ⚈ GWT, AAA Given : 특정한 값을 가지고 When : 로직을 실행했을 때 Then : 잘 나왔는지 검증한다. AAA : Assignment(=Giv.. 2022. 12. 18.
[CS 전공지식 노트] 5장. 자료구조 스터디 메인 이 스터디의 경우 이미 책의 내용이 매우 축약된 내용이므로 책 내용 정리는 크게 의미가 없다고 생각합니다. 따라서 스터디 정리는 추가로 설명한 부분에 대해 작성했습니다. [ 5장 - 자료구조 ] - 시간복잡도 https://nahwasa.com/entry/시간-복잡도에-대해 - 리스트, 벡터 https://nahwasa.com/entry/자료구조-리스트-List-Linked-List-Array-List-Vector-차이점-포함 - 배열 https://nahwasa.com/entry/배열-기본 - 스택, 큐 https://nahwasa.com/entry/자료구조-큐-스택-덱-Queue-Stack-Deque - 트리 '트리 구조로 배열된' 설명이 애매할 수 있음. 한마디로 사이클이 없는 연결 그.. 2022. 12. 15.
[CS 전공지식 노트] 4장. 데이터베이스 스터디 메인 이 스터디의 경우 이미 책의 내용이 매우 축약된 내용이므로 책 내용 정리는 크게 의미가 없다고 생각합니다. 따라서 스터디 정리는 추가로 설명한 부분에 대해 작성했습니다. [ 4장 - 데이터베이스 ] 인기는 MySQL이 많으나, 자바쪽은 오라클을 많이 쓴다. - 185p 보통 논리모델쪽에서 엔터티, 릴레이션이 물리모델의 테이블을 뜻함. 테이블의 행을 "row, 튜플 레코드", 열을 "칼럼, 필드, 속성(어트리뷰트)" 라고 말함. - 191p 오라클은 VARCHAR2가 권장되는데, 차후 VARCHAR는 오라클쪽에서 변경할 수 있기 때문이라고 함. - 202p 예시가 좀 애매한데, 그림으로 그려보면 이해하기 쉬움. 유저 ID와 수강명이 성취도를 결정하는데, 유저 ID와 수강명의 부분집합인 유저 I.. 2022. 12. 15.
[CS 전공지식 노트] 3장. 운영체제 스터디 메인 이 스터디의 경우 이미 책의 내용이 매우 축약된 내용이므로 책 내용 정리는 크게 의미가 없다고 생각합니다. 따라서 스터디 정리는 추가로 설명한 부분에 대해 작성했습니다. [ 3장 - 운영체제 ] - 134 page 이 책에 나온 수준은 단순히 개념만 알고 적당히 대답만 할 수 있는 수준임. 실제 개발에서 전반적인 시야를 넓히려면 별도로 공부하는게 좋음. 네트워크쪽은 책의 제목에 비해 일반적인 수준보다 더 써있는 것 같고(개발자한테 L4, L7의 차이를 물어볼 정도면 그냥 대답하지 말란 얘기가 아닐까..), 1,3,4,5장은 좀 빈약한 느낌이라 저자가 네트워크쪽 좋아하는 것 같음. - 139 page 레지스터는 CPU 내에서 연산 처리용이고, 캐시는 CPU와는 별도로 메모리와 CPU 속도 차이.. 2022. 12. 15.