이번 주에는 스프링(Spring) 프레임워크와 관련된 다양한 주제에 집중적으로 학습하며, 실제로 적용해보는 시간을 가졌다. 스프링부트 생성 시 라이브러리 확인: 스프링부트 프로젝트를 생성할 때 함께 생성되는 기본 라이브러리와 의존성을 자세히 조사해보았다. Spring Boot Starter와 같은 라이브러리들이 어떤 역할을 하며 어떤 기능을 제공하는지 자세히 파악했다. 이를 통해 새로운 프로젝트를 시작할 때 필요한 라이브러리 설정에 대한 이해를 높였다. Gradle 빌드와 JAR 실행: 터미널을 사용하여 Gradle을 활용하여 프로젝트를 빌드하고, 생성된 JAR 파일을 실행해보는 과정을 체험했다. ./gradlew build 명령으로 빌드하고, java -jar inflearnspring-0.0.1-SN..

전체 글
오늘은 스프링(Spring) 프레임워크에서 빈(Bean)의 스코프에 대해 학습하였다. 싱글톤(Singleton) 스코프: 싱글톤 스코프는 스프링 컨테이너 내에서 해당 빈의 인스턴스가 하나만 생성되고, 여러 곳에서 공유하여 사용되는 스코프이다. 기본적으로 모든 빈은 싱글톤 스코프로 생성된다. 스프링 컨테이너가 시작될 때 해당 빈의 인스턴스가 생성되며, 컨테이너가 종료될 때 소멸된다. 프로토타입(Prototype) 스코프: 프로토타입 스코프는 빈의 인스턴스가 요청할 때마다 매번 새로운 인스턴스가 생성되는 스코프이다. 이는 각각의 요청 또는 사용마다 독립적인 인스턴스를 생성하고자 할 때 유용하다. 스프링 컨테이너는 프로토타입 빈을 생성하고 주입하며, 프로토타입 빈을 사용한 클라이언트는 해당 빈을 직접 관리해야..
오늘은 '클린 코드' 책에서 나온 SOLID 원칙인 객체 지향 설계의 5가지 원칙에 대해서 김영한님 강의에서 학습하였다. S - Single Responsibility Principle (단일 책임 원칙): 클래스나 메서드는 하나의 책임만을 가져야 한다. 스프링에서는 각 빈(Bean)은 하나의 주된 역할만 수행하고, 이를 통해 클래스의 응집도를 높이고 유지보수성을 향상시킬 수 있다. O - Open/Closed Principle (개방-폐쇄 원칙): 확장에는 열려있고 변경에는 닫혀 있어야 한다. 스프링에서는 인터페이스와 추상 클래스를 통해 기능을 확장할 수 있도록 설계하고, 빈의 설정 변경 없이도 새로운 기능을 추가할 수 있도록 구조를 구성한다. L - Liskov Substitution Principl..
오늘은 자바에서 싱글톤 패턴(Singleton Pattern)에 대해 학습하였다. 싱글톤 패턴이란: 싱글톤 패턴은 객체 생성을 제한하여 하나의 인스턴스만을 생성하고, 어디서든 해당 인스턴스를 공유하여 사용하는 디자인 패턴이다. 이를 통해 자원을 절약하고, 객체의 일관성을 유지하여 전역적으로 접근해야 하는 상황에서 유용하게 사용된다. 싱글톤 패턴 구현 방법: 싱글톤 패턴은 여러 가지 방법으로 구현할 수 있으나, 가장 일반적인 방법은 다음과 같다. public class Singleton { // 1. private static 멤버 변수로 자기 자신의 인스턴스를 선언한다. private static Singleton instance; // 2. private 생성자로 외부에서 객체 생성을 막는다. priv..
오늘은 스프링부트에 뷰.js를 설치하고 연동해보는 시간을 가져보았다. 우선 스프링부트 프로젝트를 설치하는건 넘기고 Vue.js를 설치하는 단계부터 한다. 인텔리제이 기준으로 설명하겠다. 우선 인텔리제이 상에서 터미널을 킨다. 그리고 이코드를 입력한다. npm install -g @vue/cli 참고로 npm과 node.js가 설치가 되어있어야한다. 설명은 vue-cli를 글로벌하게 설치하겠다는 의미이다. 설치가 완료되고나면 vue --version쳐보면 버전이 나올것이다. 그러고 난뒤 vue.js를 프로젝트안에 설치할것이다. 이 줄을 입력하자. vue create frontend 프로젝트안에 frontend라는 이름의 vue 프로젝트를 설치하겠다는 뜻이다. 또한 뷰 버전을 어떤걸로 고를것인지 뜰것이다. ..
오늘은 스프링 부트를 생성할 때 자동으로 생성되는 라이브러리와 터미널을 통해 ./gradlew build와 java -jar를 실행하여 서버를 직접 작동해보는 과정을 배웠다. 나중에 AWS EC2 같은 가상환경에서 실행해볼 수 있기에 실습하면 좋을것이다. 스프링 부트 생성 라이브러리: 스프링 부트 프로젝트를 생성할 때, 자동으로 생성되는 라이브러리들에 대해 알아보았다. 스프링 부트 프로젝트는 Maven 또는 Gradle 빌드 도구를 사용하여 생성할 수 있는데, 기본적으로 다음과 같은 라이브러리들이 생성된다. Spring Boot Starter Web: 웹 애플리케이션을 개발하는 데 필요한 Spring Web, Spring MVC 등의 모듈을 포함한다. Spring Boot Starter Test: 단위 ..
AWS IAM과 EC2: 이번 주에는 AWS Identity and Access Management (IAM)과 Elastic Compute Cloud (EC2)를 사용하여 AWS 인스턴스를 생성하고 관리하는 방법을 배웠다. IAM을 통해 보안을 강화하고, EC2를 활용하여 가상 서버를 구축하고 SSH를 통해 접속하는 방법을 익혔다. Spring Boot 백엔드 개발: 'Spring Boot3 백엔드 개발자 되기' 책을 통해 Spring Boot를 사용한 백엔드 개발 방법을 학습하였다. JUnit을 활용한 단위 테스트 작성과 실행, 프로필 조회, 수정, 비밀번호 수정 기능 구현 등을 배웠다. OAuth2 구현: 후발대 강의에서 OAuth2를 활용하여 소셜 로그인 기능을 추가하는 방법을 학습하였다. 외부 ..
내배캠 후발대 강의에서 OAuth2 추상 클래스와 인터페이스의 차이에 대해 배웠다. 추상 클래스 (Abstract Class): 추상 클래스는 하나 이상의 추상 메서드를 포함하는 클래스로, 추상 메서드는 메서드의 시그니처만 정의하고 구현 내용이 없는 메서드를 말한다. 또한, 추상 클래스는 구현된 메서드도 가질 수 있다. 추상 클래스를 상속받은 서브 클래스는 추상 메서드를 반드시 구현해야 한다. 예시: abstract class AbstractClass { public abstract void abstractMethod(); public void concreteMethod() { // 구현 내용 } } 인터페이스 (Interface): 인터페이스는 모든 메서드가 추상 메서드인 특별한 종류의 클래스로, 메서..