전체 글145 [flowerBowl] 프로젝트 소개 ≣ 목차 💡 Introduction최근 몇년간 배달음식 소비가 증가하고 있습니다. 그에 따라 매일 요리하는 사람들의 비율은 감소하고 있습니다.이러한 배경 아래, 저희는 바쁜 사람들에게 더 건강한 한 끼와 요리의 즐거움을 느껴보기를 바라는 마음으로 화반을 개발하게 되었습니다.참여 인원 : 백엔드 3명 / 프론트엔드 2명 🧑🏾💻 Skill/Stack프레임워크: Spring Boot 3.2.4(gradle) 서버: AWS EC2 Storage Service: AWS S3 웹서버: Nginx ORM: Spring Data JPA DB: Mysql 8.0.36 CI/CD: github action 필자가 백엔드라서 백엔드 기술/스택만 적었습니다!! 📚 ERDhttps://www.erdcloud.co.. 2024. 6. 13. [flowerBowl] 프로젝트 기술 스택 및 아키택처 정리 프로젝트에 적용한 기술 스택, 아키택처에 대해서 간단하게 정리 해보겠습니다기술에 관한 설명해당 기술을 선택한 이유 AWSEC2EC2란 독립된 컴퓨터를 임대해 주는 서비스로서 AWS에서 제공하는 클라우드 컴퓨팅이다.PC방과 같이 사용한 만큼 비용을 지불하기 때문에 탄력적인 이라는 의미의 Elastic이라는 단어가 붙어있다. Elastic은 비용적인 부분 뿐만이 아니라 필요에 따라 성능, 용량을 자유롭게 조절할 수 있다는 의미도 가지고 있다.자세한 내용은 해당 포스팅을 참조하면 된다. 이 기술을 프로젝트에 적용한 이유는 무엇인가?EC2를 사용하면 가상 서버를 간편하게 구축하고 관리할 수 있다. 이렇게 서비스를 사용하면 물리적 서버를 관리할 필요가 없어지고, 필요에 따라 확장이나 축소도 쉽게 할 수 있어 .. 2024. 6. 4. [Devops] AWS EC2 인스턴스 유형 및 선택 방법 EC2 인스턴스 유형EC2 인스턴스를 시작할 때 지정하는 인스턴스 유형에 따라 인스턴스에 사용되는 호스트 컴퓨터의 하드웨어가 결정된다. 인스턴스에서 실행하려는 애플리케이션 또는 소프트웨어의 요구 사항에 따라 인스턴스 유형을 선택하면 된다.즉 김치찌개를 끓이려고 하는데 먹는 사람에 성향에 따라 맛을 조절한다고 생각하면 된다.(혹시 제 비유가 이상하면 댓글 달아주세요 ㅎㅎ!!!) EC2 인스턴스란 한정된 요금(재료)으로 EC2 인스턴스의 유형(음식)을 선택하고 사이즈(조미료)를 골라 각 인스턴스별로 사용 목적에 따라 최적화를 시키는 것이다. 예를들어 CPU가 좋은 서버를 만든다던지, 메모리 위주에 힘을 실어 저장소로서 기능 구성한다던지 등 다양하게 구성을 할 수 있다. 해당 사진을 보면 자신이 원하는 목적.. 2024. 5. 8. [Devops] AWS EC2 기본 개념 및 구성 EC2 (Elastic Compute Cloud) 개념독립된 컴퓨터를 임대해 주는 서비스로서 AWS에서 제공하는 클라우드 컴퓨팅이다. PC방과 같이 사용한 만큼 비용을 지불하기 때문에 탄력적인 이라는 의미의 Elastic이라는 단어가 붙어있다. Elastic은 비용적인 부분 뿐만이 아니라 필요에 따라 성능, 용량을 자유롭게 조절할 수 있다는 의미도 가지고 있다 EC2를 사용해야 하는 이유120GB SSD를 구입해서 120GB만큼 이용하는게 아니라 사용한 만큼 비용을 지불하고 사용할 수 있으니 융통적으로 비용을 아낄 수 있다. 또한 초기 구입비, 세팅비가 전혀 없고, 그냥 사용한 만큼 비용을 지불하면 된다. 이를 통해 하드웨어 구매없이 더 쉽게 애플리케이션을 개발하고 배포할 수 있다. EC2를 통해.. 2024. 5. 8. [Devops] Public IP, Private IP 용어 정리 Public IPPublic IP 주소는 네트워크 외부와 통신하는데 사용되는 IP 주소입니다.Public IP 주소는 ISP(Internet Service Provider)에서 할당하고, 외부에 공개되어 있는 IP 주소입니다. 전 세계에서 유일한 IP 주소를 갖고, 외부에 공개되어 있기 때문에 인터넷에 연결된 다른 PC에서 또한 접속이 가능합니다. Private IPPrivate IP는 동일한 네트워크 내에서 사용되는 IP 주소입니다.일반적으로 사내에서 할당된 네트워크의 IP 주소이며, IPv4의 주소 부족으로 인하여 서브넷팅된 IP이기 때문에 라우터에 의해 로컬 네트워크 상의 PC나 장치에 할당 Public IP Private IP 비교public ipprivate ip범위는 전세계적(global)범위.. 2024. 5. 8. [Devops] 탄력적 IP 개념 & 사용 Elastic IP (탄력적 IP)아마존의 탄력적 IP 주소(Elastic IP address) 기능은 전통적인 데이터 센터의 고정 IP 주소와 비슷하지만, 한 가지 주된 차이점이 있다. 사용자는 네트워크 관리자의 도움 없이, DNS의 바인딩을 대기할 필요 없이 어떠한 가상 머신 인스턴스에라도 탄력적 IP 주소를 프로그래밍적으로 부여할 수 있다. 탄력적 IP 주소는 계정이나 가상 머신 인스턴스에 소속되지 않는다. 외견상 제거될 때까지 존재하며, 인스턴스에 연결되어 있지 않더라도 계정에 연결된 채로 남아있는다. Elastic IP를 사용해야 하는 이유EC2 인스턴스를 생성하면 Public 주소, private 주소를 할당 받게 된다. 인스턴스의 Public IP는 고정된 IP 주소가 아니라 유동적인 I.. 2024. 5. 8. [spring] 의존관계 자동 주입 - 생성자 주입을 사용해야 되는 이유 다양한 의존관계 주입 방법 크게 4가지가 있다. 생성자 주입 수정자 주입(setter주입) 필드 주입 일반 메소드 주입 생성자 주입 이 방법은 객체를 생성할 때 생성자를 통해 의존성을 주입하는 방식이다. 스프링이 클래스의 생성자를 분석하여 필요한 의존 객체를 자동으로 주입한다. 생성자 호출시점에 1번만 호출되는 것이 보장된다. 주로 불변, 필수 의존관계에 주로 사용한다. 왜냐하면 생성자는 딱 1번만 호출되기 때문이다 @Component public class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; private final DisCountPolicy disCountPolicy; @A.. 2024. 3. 24. [Spring] Spring 기본 개념 - 스프링 컨테이너 스프링 컨테이너 스프링 컨테이너는 스프링빈(객체)의 생성 및 관리를 담당하는데, 이는 일반적으로 개발자가 아닌 스프링이 제어하게 된다. 이는 제어의 역전이라고도 불리는데, 이는 애플리케이션의 제어 흐름이 개발자가 아닌 프레임워크(스프링)에 의해 결정된다는 뜻이다. 스프링 컨테이너에 저장되는 빈은 기본 값은 싱글톤이지만, 해당 값을 변경할 수 있다. 싱글톤 패턴 싱글톤 패턴은 클래스의 인스턴스를 하나의 인스턴스로 제한하고 해당 인스턴스를 재활용하는 디자인 패턴이다. 이런 싱글톤 패턴에는 단점이 존재한다. 단 한 개의 인스턴스를 사용하고 있기 때문에 예상치 못한 상황을 마주칠수 있다. 단위 테스트 시 버그를 초래할 수 있다. 싱글톤 인스턴스가 테스트 간에 공유되어서 테스트 결과에 영향을 미칠수 있다 의존성이.. 2024. 3. 24. [spring] 스프링 빈의 기본 개념 스프링 컨테이너Spring 컨테이너는 Spring 애플리케이션의 핵심 구성 요소인 빈(Bean) 객체들을 생성, 구성, 그리고 소멸에 이르는 전반적인 생명주기를 관리하는 역할을 담당하며, 이를 통해 개발자는 빈의 생성 및 의존성 관리에 대한 부담을 덜고 핵심 비즈니스 로직 개발에 집중할 수 있도록 개발 프로세스를 단순화합니다. Spring 컨테이너는 크게 BeanFactory와 ApplicationContext의 두 가지 유형으로 분류할 수 있습니다. BeanFactoryBeanFactory은 스프링 컨테이너의 최상위 인터페이스Spring 애플리케이션에서 Bean을 관리하고 조회하는 역할 .ApplicationContextApplicationContext는 BeanFactory 인터페이스의 확장BeanF.. 2024. 3. 24. 객체 지향 설계의 5가지 원칙(SOLID) 좋은 객체 지향 설계의 5가지 원칙(SOLID) SOLID 원칙을 적용하면 코드를 확장하고 유지 보수 관리하기가 더 쉬워지며, 불필요한 복잡성을 제거해 리팩토링에 소요되는 시간을 줄임으로써 프로젝트 개발의 생산성을 높일 수 있다. 좋은 객체 지향 설계의 5가지 원칙(SOLID) SRP: 단일 책임 원칙(Single Responsibility Principle) OCP: 개방-폐쇄 원칙 (Open/Closed Principle) LSP: 리스코프 치환 원칙 (Liskov Substistution Principle) ISP: 인터페이스 분리 원칙 (Interface Segregation Principle) DIP: 의존관계 역전 원칙(Depondency inversion Principle) SRP 단일 책임.. 2024. 3. 23. 이전 1 ··· 10 11 12 13 14 15 다음