Study 23

[Study][함께자라기 - 1] 3. 애자일

📋 목차. 3. 애자일 .애자일의 씨앗 .애자일 도입 성공 요인 분석 .당신이 조직에 새 방법론이 먹히지 않는 이유 .애자일을 애자일스럽게 도입하기. ✔️ 내용. 3. 애자일 애자일은 불확실성이 클 때 우리가 어떻게 해야 하는지를 고민한 결과물이다. 좀더 짧은 주기로 더 일찍 부터 피드백을 받고, 더 다양한 사람으로부터 더 자주 그리고 일찍 피드백을 받은 것으로 정리할 수 있다. 앞서 배운 '함께(협력)' 과 '자라기(학습)'가 이 애자일의 핵심이다. 불확실성이 큰 상황에서 좋은 대응 전략이다. 이 장에서는 애자일을 좀 더 들여다본다. .애자일의 씨앗 고객에게 매일 가치를 전하라. 애자일의 씨앗을 한문장으로 압축한 것이다. 각각의 단어의 내용은 다음과 같다. - 고객에게 - 우리의 진짜 고객은 누구인가?..

[Study][함께자라기 - 1] 2. 함께

📋 목차. 2. 함께 .소프트웨어 관리자의 개선 우선수위 .협력을 통한 추상화 .신뢰를 깎는 공유인가 신뢰를 쌓는 공유인가 .하향식 접근의 함정 .전문가팀이 실패하는 이유 .구글이 밝힌 탁월한 팀의 비밀 .쾌속 학습팀 .프로젝트 확률론 ✔️ 내용. 2. 함께 스터디를 진행할 때면 각각 파트를 분리하고 후에 합쳐서 보게 되는데 속을 들여다보면 협력은 거의 없다고 볼 수 있다. 이 장에서는 협력 방법을 배우고 수련하는 파트이다. .소프트웨어 관리자의 개선 우선수위 조엘 테스트라는 것으로 '개발팀 평가 테스트'가 다음과 같이 있다. 1. 소스 컨트롤을 사용하는가? 2. 한 번에 빌드를 만들어낼 수 있는가? 3. 일일 빌드를 만드는가? 4. 버그 데이터베이스를 가지고 있는가? 5. 새로운 코드를 작성하기 전에 ..

[Study][함께자라기 - 1] 1. 자라기

📋 목차. 0. 들어가면서 1. 자라기 .당신은 몇 년 차? .학습 프레임과 실행 프레임 .가장 학습하기 힘든 직업이 살아남는다. .달인이 되는 비결 .수십 년 동안 전문가가 안 되는 비결 .당신이 제자리걸음인 이유 .프로그래밍 언어 배우기의 달인 .실수는 예방하는 것이 아니라 관리하는 것이다. .뛰어난 선생에 대한 미신 .나홀로 전문가에 대한 미신 ✔️ 내용. 0. 들어가면서 "내가 정말 잘할 수 있을까? 아니, 우리가 정말 자랄 수 있을까?" 무엇이든 혼자 힘만으로는 힘들다. 함께 해야 뭔가를 편히 이룰 수 있다. 하지만 우리는 함께 하는 것보다는 각자 하는 것에 익숙하고, 또 그렇게 강요받아왔다. 이번에 잘하냐 못 하냐가 중요하지 않다. 앞으로의 기회가 많다면 지금 잘하냐가 아니라 지금 자라나는 것..

[Study][함께자라기 - 0] 계획

❓ 책 정보. 저자 : 김창준 ‘함께’는 협력을 말하고, ‘자라기’는 학습을 말한다. 무엇이건 실제 바깥세상(야생)에 임팩트를 남기려면 혼자 힘으로만 되는 게 없다. 함께 해야 한다. 주변 사람들과 함께. 매일 부대끼는 동료들과 함께. 스스로 변하고 싶지만 계속 실패하는 사람, 조직을 개선하기 위한 시도를 하다가 오히려 데어본 사람, 불확실한 상황에서 합리적인 판단을 해야 하는 사람, 한 분야에서 전문성을 키워야 하는 사람에게 전문성을 키울 수 있는 제대로 된 방법을 알려준다. 어떤 분야에서 일하든 어느 위치에 있든 상관 없다. 이 책에서는 일하는 방법의 핵심과 통찰을 다룬다. 개인의 힘으로는 극복할 수 없는 한계를 깨뜨리려면 모두가 같이 발전해야 한다. 나 그리고 더 나아가 남을 변화시키는 삶에 대해 ..

[Study][CleanCode - 5] 회고

🥰 좋았던 점 - 오랜만에 시작하는 스터디라 재밌게 할 수 있었다. - 복잡한 기술서적이 아니다 보니 가볍게 읽을 수 있어서 좋았다. ✏️ 배운 점 - 전체적으로 깨끗한 코드를 작성하는 방법에 대해 알 수 있었다. - 항상 어떻게 짜야 좋은 코드인지를 고민했지만 시원한 답변을 찾기가 어려웠는데 이번 스터디를 통해 클린 코드의 큰 방향성을 얻게 되었다. 😭 부족했던 점 - 명확한 일정을 잡고 진행하지 않아서 예상보다 조금 더 긴 스터디가 되었다. 다음에는 일정 계획을 확실히 잡고 가야겠다!. - 책 내용을 100% 완벽하게 이해했다고는 하지 못하여 그 부분이 조금 아쉽다. - 눈으로 보기만 하여 체화하지 못한 부분도 있어서 내용을 제대로 소화했는지 의문이 조금 있다.. 🙏 바라는 점 - 다음에는 계획 잡고..

Study/CleanCode 2022.08.17

[Study][CleanCode - 4] 17. 냄새와 휴리스틱

📋 목차. 17. 냄새와 휴리스틱 .주석 .환경 .함수 .일반 .자바 .이름 .테스트 .결론 ✔️ 내용. 17. 냄새와 휴리스틱 마틴 파울러는 'Refactoring'에서 다양한 코드 냄새를 거론한다. 이 장의 목록에서는 마틴이 맡은 냄새에 저자가 맡은 냄새를 추가한다. 또한 코드를 짜면서 사용하는 기교와 휴리스틱도 포함한다. 아래 목록들은 '왜?'라고 자문한 다음 답을 기록하였다. .주석 - C1: 부적절한 정보 다른 시스템에 (VCS, 버그 추적 시스템 등) 저장할 정보는 주석으로 적절하지 못하다. 변경 이력, 날짜 등은 소스 코드만 번잡하게 만든다. 일반적으로 작성자, 최종 수정일, SPR(Software Problem Report) 번호 등과 같은 메타 정보만 주석으로 넣는다. 주석은 코드와 설계..

Study/CleanCode 2022.08.15

[Study][CleanCode - 4] 16. SerialDate 리펙터링

📋 목차. 16. SerialDate 리펙터링 .결론 ✔️ 내용. 16. SerialDate 리펙터링 저자가 SerialDate 라는 Date 클래스를 탐험하며 부족한 테스트 케이스와 리펙토링을 하는 일련의 과정을 보여주는 장이다. 이 역시 14, 15장과 마찬가지로 책의 코드를 보며 리펙터링 과정을 훑어보는 걸로 마쳤다. .결론 이 장 역시 결론 적으로는 보이스카우트 규칙을 따랏다. 체크아웃한 코드보다 좀 더 깨끗한 코드를 체크인하게 되었다. 시간은 걸렸지만 가치있는 작업으로 테스트 커버리지가 증가했으며, 몇개의 버그를 고쳤고 코드 크기를 줄이고, 코드를 명확히 했다. 다음에 코드를 읽게 될 사람은 좀 더 쉽게 이해할 수 있게되리라. 그래서 우리보다 코드를 좀 더 쉽게 개선하리라. 📝 느낀점. - 전반..

Study/CleanCode 2022.08.14

[Study][CleanCode - 4] 15. JUnit 들여다보기

📋 목차. 15. JUnit 들여다보기 .결론 ✔️ 내용. 15. JUnit 들여다보기 JUnit은 자바 프레임워크 중 가장 유명하다. 개념은 단순하며 정의는 정밀하고 구현은 우아하다. 이 장 역시 앞선 '14장 점진적 개선'과 마찬가지로 코드로 작성된 페이지로 간단하게 확인만 하였다. .결론 캠프장은 처음 왔을 때보다 더 깨끗하게 해 놓고 떠나라 보이스카우트 규칙 이 장에서는 코드 개선을 보여주었다. 보이스카우트 규칙을 지키며 처음 모듈보다 조금 더 깨끗한 모듈을 만듦에 포인트를 주어 개선해 나가는 과정을 보여주었다. 그렇다 하여 원래 깨끗하지 못했다는 말이 아니다. 우수한 모듈을 만들었지만 세상에 개선이 불필요한 모듈은 없다. 코드를 처음보다 조금 더 깨끗하게 만드는 책임은 우리 모두에게 있다. 📝 ..

Study/CleanCode 2022.08.11

[Study][CleanCode - 4] 14. 점진적인 개선

📋 목차. 14. 점진적인 개선 .점진적으로 개선하다. .결론 ✔️ 내용. 14. 점진적인 개선 점진 적인 개선을 코드로 보여주는 장으로 많은 내용이 없다. 프로그래밍은 과학보다 공예에 가깝다. 깨끗한 코드를 짜려면 먼저 지저분한 코드를 짠 뒤에 정리해야 한다. 돌아가는 프로그램을 목표로 잡아서는 안된다. 이런 행동은 전문가로서 자살 행위이다. .점진적으로 개선하다. 프로그램을 망치는 가장 좋은 방법 중 하나는 개선이라는 이름 아래 구조를 크게 뒤집는 행위다. 어떤 프로그램은 그저 그런 '개선'에서 결코 회복하지 못한다. '개선' 전과 똑같이 프로그램을 돌리기가 아주 어렵기 때문이다. 그래서 저자는 테스트 주도 개발(TDD)이라는 기법을 사용했다. TDD는 언제 어느 때라도 시스템이 돌아가야 한다는 원칙..

Study/CleanCode 2022.08.10

[Study][CleanCode - 3] 13. 동시성

📋 목차. 13. 동시성 .동시성이 필요한 이유? .난관 .동시성 방어 원칙 .라이브러리를 이해하라. .실행 모델을 이해하라. .동기화하는 부분을 작게 만들어라 .올바른 종료 코드는 구현하기 어렵다. .스레드 코드 테스트하기 .결론 ✔️ 내용. 13. 동시성 객체는 처리의 추상화다. 스레드는 일정의 추상화다. - 제임스 O. 코플리엔 동시성과 깔끔한 코드는 양립하기 아주 어렵다. 이 장에서는 여러 스레드를 동시에 돌리는 이유를 논한다. 여러 스레드를 동시에 돌리는 어려움도 논하며 이런 어려움에서 어떻게 깨끗한 코드를 작성하는지 방법도 제안한다. 마지막으로, 동시성을 테스트하는 방법과 문제점을 논한다. .동시성이 필요한 이유? 동시성은 결합을 없애는 전략이다. 즉, 무엇과 언제를 분리하는 전략이다. 단일 ..

Study/CleanCode 2022.08.10