전체 글 74

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

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

[AWS][EC2] ec2-user 디렉토리 복구

✏️ Info. - QA Server 에서 rsync 명령어로 디렉토리간 싱크 맞추려다가 ec2-user 디렉토리를 날려 먹었다. Dev 서버에서 열심히 싱크를 맞추면서 데이터를 넣었지만 ssh 로그인 되지않았다....😭 - No supported authentication methods available (server sent: publickey..) 오류 발생 으로 해결방안을 적어본다. * 다행히 접속 중인 상태를 종료하지 않았다! 결론 .ssh 와 authorized_keys 권한 문제였다 📋 List. 1. ssh key 가져오기 2. ssh 퍼블릭 키 추가 - .ssh 디렉토리 생성 - .ssh 권한 설정 (* 파일 권한이 정확하지 않으면 사용자가 로그인할 수 없다.) - authorized_k..

AWS 2022.08.19

[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

[Study][CleanCode - 3] 12. 창발성

📋 목차. 12. 창발성 .창발적 설계로 깔끔한 코드를 구현하자. .단순한 설계 규칙 1 : 모든 테스트를 실행하라 .단순한 설계 규칙 2~4 : 리펙터링 .중복을 업애라 .표현하라 .클래스와 메서드 수를 최소로 줄여라 .결론 ✔️ 내용. 12. 창발성 .창발적 설계로 깔끔한 코드를 구현하자. 1. 모든 테스트를 실행한다. 2. 중복을 없앤다 3. 프로그래머 의도를 표현한다. 4. 클래스와 메서드 수를 최소로 줄인다. 켄트 벡이 제시한 위의 4가지 규칙을 따르면 우수한 설계가 나오고, 코드 구조와 설계를 파악하기 쉬우며 SRP, DIP 같은 원칙을 적용하기 쉬워진다. 또한 설계는 단순하다고 말한다. 순서는 중요도 순이다! .단순한 설계 규칙 1 : 모든 테스트를 실행하라 검증이 불가능한 시스템은 절대 출..

Study/CleanCode 2022.08.04