분류 전체보기
[스프링 핵심원리] OCP와 DIP
package hello.core.member; public class MemberServiceImpl implements MemberService { private final MemberRepository memberRepository = new MemoryMemberRepository(); public void join(Member member) { memberRepository.save(member); } public Member findMember(Long memberId) { return memberRepository.findById(memberId); } } 설계상 문제점은 아래와 같다. private final MemberRepository memberRepository = new Memor..
[스프링 핵심원리] SOLID 원칙
※ 본 포스팅은 21.10.11에 게시된 글을 이전한 것 입니다. SOLID 원칙은 객체지향에서 대표적인 원칙이라고 할 수 있으며 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정리한 것이다. SRP, 단일 책임 원칙 Single responsibility principle, 단 하나의 책임만을 가져야 한다는 것을 의미한다. 여기서 책임의 기본단위는 객체를 의미하며, 하나의 객체가 하나의 책임을 가져야 한다는 의미이다. 그렇다면 책임은 무엇인가? 객체지향에서 책임은 객체가 할 수 있는 것과, 해야 하는 것으로 나누어져 있다. 즉, 하나의 객체는 할 수 있는 것과 해야 하는 것만 수행할 수 있도록 설계되어야 한다. 하지만 하나의 책임이라는 것은 모호하다. 책임은 클 수도 있고 작을 수도 있으며 문맥과..
![[스프링 핵심원리] 객체지향프로그래밍이란?](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7ZY8d%2FbtsaVivQnrI%2FdQrdhMik6DNiM3OwjZkal1%2Fimg.png)
[스프링 핵심원리] 객체지향프로그래밍이란?
※ 본 포스팅은 21.9.24에 게시된 글을 이전한 것 입니다. 객체지향프로그래밍이란? 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위 즉, "객체" 들의 모임으로 파악하고자 하는 것이다. 또한, 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트 웨어 개발에 적합하다. 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고, 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다. "유연하고 변경이 용이하다"는 예를 들어 마치 컴퓨터 부품을 갈아 끼워도 고유의 기능은 같아 사용이 가능한 것을 의미한다. 즉, 컴포넌트를 쉽고 유연하게 변경하며 개발할 수 있는 방법이다. 다형성 역할과 구현으로 세상을 구분한다. 운전면허가 있는 누구나 운전자 역할을 할..
[DevOps] SpringBoot + GitHub action + Nginx + AWS 배포 - 3
본 플젝은 스프링부트를 사용했으며 깃헙 액션을 통해 도커허브에 이미지를 푸시하고 ec2에서 이미지를 실행시키는 방식이다. ※ AWS Route53에서 도메인을 구매했거나 Route53의 호스팅 영역 생성 후 NS값을 해당 도메인의 네임서버에 넣어주면 된다. 1. 도메인 Https 설정 -1) AWS ACM(AWS Certificate Manager) 접속 후 인증서 생성 -2) 인증서 ID 누름 → Route 53 레코드 생성 몇 분 후에 성공 상태가 된다. -3) ec2 로드 밸런서 생성 * Application Load Balancer으로 생성 http와 https를 모두 생성해 준 후 타깃 그룹을 생성해 준다. Nginx에서 80 포트로 접속할 것이므로 protocol : http port: 80으..
[DevOps] SpringBoot + GitHub action + Nginx + AWS 배포 - 2
본 플젝은 스프링부트를 사용했으며 깃헙 액션을 통해 도커허브에 이미지를 푸시하고 ec2에서 이미지를 실행시키는 방식이다. 1. ec2 설정 ec2 인스턴스 생성 후 인바운드 규칙 수정 기본적으로 아래와 같은 포트가 필요하다. ssh, http, https, DBport, Spring port.. 해당 포트들이 모두 열려있어야 요청 시 접속이 가능하다. ※ 탄력적 IP까지 연결 해주면 좋다. 2. SecretKey 적용 -1) HOST: 배포할 EC2 서버 퍼블릭 DNS(IPv4) 주소 예: ec2 {퍼블릭_IPv4_주소}. ap-northeast-2.compute.amazonaws.com -2) KEY: ----BEGIN RSA PRIVATE KEY--- 부터 ----END RSA PRIVATE KEY-..