본문 바로가기

분류 전체보기159

이펙티브 엔지니어 💡 레버리지가 높은 활동을 해야 하는 이유 : 시간이라는 제한된 자원을 더 효율적으로 사용하기 위해서 💡 아직 회사에 속하지 않은 내가 실천할 수 있는 활동은 무엇인가? 프로젝트 과정에서 코드 소유권을 공유하고 집단 지성 기록하기 더 간단하고 효과적이고 직관적인 해결책 고민하기 비즈니스든 기술이든 빨리 실패하고 피드백받아서 빨리 개선하기 1부 올바른 마인드셋을 갖춰라 1장 레버리지가 높은 활동에 집중하라 이 책에서 얻을 것 : 지속적으로 스스로 성장하는 방법, 개인과 조직이 성장할 수 있는 방법과 그 실천 기회 엔지니어링의 효과성을 측정하는 방법인 레버리지(aka ROI) : 제한된 시간 안에서 높은 투자 효과를 내는 활동에 집중하기. 레버리지 포인트가 높은 활동에 집중하고 습관 만들기 레버리지 높이기 .. 2024. 1. 17.
5장 책임 할당 GRASP 패턴 5장 관련 이야기 나눈 내용 리팩터링 이야기. 스프링을 처음 배우고 나서 만든 스프링 프로젝트의 코드를 열어보니 너무 더럽더라. 그래서 리팩터링을 시도했는데, 이미 코드가 많은 상태에서 개선하려고 하니 너무 강하게 결합되어서 조금만 고쳐도 컴파일 오류가 났다. 결국 코드를 새로 작성하는 것밖에는 답이 없겠다 싶었다. 너무 큰 작업이라고 생각해 지금도 미루고 안 하고 있다. ㅋㅋㅋㅋ 어쨌든 리팩토링은 코드가 조금 쌓였을 때 주기적으로 하는게 좋은 것 같다. (기술부채 상환이라고 하는 듯) 리액트 프로젝트 했을 때 코드를 혼자 쓰는거라 완전 Stateful(?)하게 의존성 높게 짰다. 후반에 시간이 모자라서 협업을 하게 됐는데 다른 사람에게 코드를 이해시키느라 시간이 더 오래 걸렸을 정도로 코드가 복잡했다... 2024. 1. 17.
4장 설계 품질과 트레이드오프 (캡슐화) 팀원들과 이야기 나눈 내용 처음 객체를 설계할 때부터 무엇부터 생각하는지에 따라 설계 결과가 완전히 달라지는 것이 신기하다. 첫 단추가 중요한 것 같다. 코드를 완전히 처음 작성하는게 아닌 이상 이렇게 이상적인 객체지향적 접근을 적용하기 어려워 보인다. 아직 경험이 부족하므로 이렇게 좋은 품질의 객체지향 설계를 하는 것은 어렵다고 생각한다. 그래도 4장에서 짚어보았던 것처럼, 캡슐화가 제대로 되지 않은 코드를 알아보는 것부터 연습해보는 것이 필요할 것 같다. 캡슐화가 제대로 되지 않은 코드가 있다면 어떤 문제가 발생할 수 있는지, 변경의 여파가 어디까지 커지는지 확인하는 것부터 연습해보자. ORM이 객체중심의 애플리케이션과 데이터 중심의 데이터베이스 패러다임 차이를 해결한다고 하는 점이 이해가 잘 안됐었.. 2024. 1. 17.
3장 협력, 책임, 역할 협력 기능 구현을 위해 수행하는 상호 작용 협력은 객체가 필요한 이유와 행동을 결정한다. 이 행동은 객체의 내부 상태를 결정한다. 캡슐화된 객체는 자신의 책임을 수행하던 중에 외부의 도움이 필요하면 메시지를 전송해 협력을 요청한다. 책임 협력에 참여하기 위해 객체가 수행하는 행동. 종류 : 아는 책임, 하는 책임 적절한 책임을 적절한 객체에 할당하는 것이 객체지향설계에 있어 가장 중요한 부분 책임주도설계와 같이 메시지가 객체를 선택하도록 하는 방식은 최소한의 인터페이스를 제공하며 무엇을 해야하는지에 집중할 수 있다. 메시지를 전송하는 것에 집중하므로 자연스럽게 캡슐화된 객체들의 협력을 얻을 수 있다. 협력, 책임, 역할 중 책임이 가장 중요하다. 협력은 어떤 행동이 필요한지 맥락을 제공하며, 역할은 책임.. 2024. 1. 17.
<애자일 개발이 처음인 내가 출근했더니 스크럼 마스터가 된 건에 대하여> 왜 관심을 가지게 됐나? 협업을 더 잘하고 싶어서! 팀 프로젝트를 할 때마다 협업이 잘 안되는 것 같아 생각이 많아지는 경우가 종종 있었다. 협업을 잘 하고 싶은 마음은 항상 있는데, 구체적으로 어떻게 무엇을 해야 팀원끼리의 시너지를 끌어낼 수 있는지 궁금해서 애자일 방법론에 관심을 갖게 되었다. gpt가 코드는 짜주지만 사람 대신 행동을 해주지는 않기 때문에, 앞으로 협업과 소통 능력이 더 중요하겠다는 생각이 문득 들었다. 지금까지 학교나 동아리에서 프로젝트를 여러번 했었는데, 사실 그 과정이 순탄했다고 느낀 적은 단 한번도 없다. 칸반 보드나 일간 보고, 페어 프로그래밍, 컨벤션 등의 도구는 부분적으로 사용해봤으나, 어떠한 맥락에서 이 도구가 효과적인지를 느끼지 못해 결국 편한대로 막 개발하게 되었다.. 2024. 1. 13.
ELB + EC2 Auto Scaling ELB와 EC2 Auto Scaling 통합하기 AWS Auto Scaling Group은 EC2 인스턴스의 스케일링을 담당한다. ELB는 로드 밸런싱을 담당한다. ELB에 ASG를 통합하여 ASG가 관리하는 EC2 인스턴스들에 트래픽을 분산시킬 수 있다. 또 ELB 헬스 체크를 통해 정상 인스턴스에만 트래픽을 전송할 수 있다. Auto Scaling Group의 역할 그룹 안의 ec2 인스턴스의 개수를 관리. 스케일 아웃과 스케일 인을 담당한다. 최소 개수, 최대 개수를 설정한다. Policy로 스케일링 전략을 정할 수 있다. CloudWatch를 통해 인스턴스의 성능 지표를 모니터링하고, 특정 지표에 따라 자동으로 인스턴스를 확장 및 축소할 수 있다. 그룹 내 인스턴스의 헬스 체크를 주기적으로 수행해.. 2024. 1. 7.