목록분류 전체보기 (572)
오봉이와 함께하는 개발 블로그
강한 결합 - 상속 어설프게 사용하는 상속은 강한 결합 구조를 유도한다. 객체지향을 소개하는 많은 글에서 객체지향의 장점으로 상속을 소개하는 경우가 많은데 잘 사용하면 문제가 없겠지만, 어설프게 사용하면 오히려 독이 될 수 있는 방법이다. 그래서 상속 대신 사용하는 컴포지션을 사용하라는 말이 있다. 상속 문제 - 슈펴 클래스에 의존 먼저 상속의 문제를 알아보자 PhysicalAttack 클래스는 단일 공격과 두번 연속 공격하는 메서드가 존재한다. 해당 PhysicalAttack 클래스는 앞으로 존재할 모든 공격에 대해 부모 클래스로 설계한 클래스다. public class PhysicalAttack { public int singleAttackDamage() { return 10; } public int..
결합도 코드를 작성할 때 중요한 부분은 특정 단위(클래스 혹은 모듈 등이지만, 이제 클래스라고 표현 하겠다) 사이에서 결합도를 낮추는 코드를 작성하는 것이다. 여기서 결합도란 클래스 사이의 의존도라 할 수 있겠다. 클래스A와 클래스B의 결합도가 높다면 높은 확률로(필연적이라 표현해도 문제 없을 거 같다.) 클래스A를 수정할 때 클래스B도 같이 수정해야 할 것이다. 혹은 클래스A만 수정했는데 클래스B에서 원하지 않는 사이드이펙트가 발생할 것이다. 이 외에도 새로운 클래스C를 작성해서 문제를 풀어내야 할 수도 있을 것이다. 보통 우리는 회사를 다닐테고, 회사의 목적은 이윤창출. 즉 회사에서 하는 모든 일은 비용을 생각해야 하기 때문에 유지보수 비용이 낮은 코드를 작성해야 한다. 또한 그래야만 우리 같은 개발..
성숙한 클래스 내 코드가 그렇게 이상한가요? 라는 책을 보며 알지 안전한 클래스를 생성하는 방식에 대해 정리한다. 사실 이론적인 내용으로 알지 못 하지만, 습관적으로 다들 안전한 코드를 작성하고 있다 생각하는데 간혹 무심결에 작성한 코드가 안전하지 않은 코드를 작성할 수 있고, 혹은 정말 모르고 작성한 코드가 안전하지 않은 코드가 될 수 있기 때문에 누군가 보고 도움이 되길 바라는 마음 + 공부의 목적으로 글을 작성한다. 생성자 유효성 검사 데이터 클래스를 생성할 때 무심결에 다음과 같이 사용할 수 있다. class Money { int acmount; } Money money = new Money(); money.setAmount(100); 이렇게 사용 하면 따로 값을 할당하지 않을 경우 문제가 발생할..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/DyrC8/btsy3O7vjjm/8cebZVpsQjCKp3xIKWwr41/img.png)
Github Actions 작성 아래 내용을 프로젝트의 루트/.github/????(원하는 이름).yml 으로 입력한다. # workflow의 이름 name: CI # 해당 workflow가 언제 실행될 것인지에 대한 트리거를 지정 on: push: branches: [ main ] # main branch로 push 될 때 실행됩 pull_request: branches: [ main ] # main branch로 pull request될 때 실행 env: AWS_REGION: ap-northeast-2 AWS_S3_BUCKET: 각자 설정한 이름 입력 AWS_CODE_DEPLOY_APPLICATION: 각자 설정한 이름 입력 AWS_CODE_DEPLOY_GROUP: 각자 설정한 이름 입력 # work..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dxVHIJ/btsy7R2XaH3/mHYa8UKrbZyQ4JTX58Nl30/img.png)
개요 프론트, 백으로 나눠 사이드 프로젝트를 진행하는데 API 개발 후 프론트엔드 담당자가 개발을 하기 위해 환경 구성을 하는 것이 부담스럽다 생각해서 하게 되었다. 물론 Docker를 통해 말아줘도 되겠지만, 기능 추가마다 Docker 이미지를 말아서 Docker Hub에 올리거나 전달해줘야 하는 작업이 귀찮기도 했다. 귀찮음이 많은 개발자가 성공한다더니 이런 의미에서 하는 말들이 아닐까 싶다. 아직 설정해야 할 부분들이 산더미지만, 현재 commit 시점에 자동으로 AWS EC2 환경에 배포까지 마무리가 되어 포스팅을 하려 한다. CI/CD 간단하게 CI/CD에 대해 알고 넘어가야 할 거 같다. 아래와 같은 의미들이 있다고는 하지만 내가 알고 있는 지식은 commit 하면 자동으로 빌드(테스트 과정 ..