Spring

· Spring
오늘은 팀 프로젝트에서 댓글 기능을 구현하는 작업을 하였다. 댓글 컨트롤러와 엔드포인트 설정: 댓글 기능을 처리하기 위해 ReplyController를 작성하고, 댓글 조회, 작성, 수정, 삭제와 관련된 엔드포인트를 설정했다. @RestController @RequestMapping("/api") @RequiredArgsConstructor public class ReplyController { // ... (생략) } 댓글 엔티티 설계: 댓글의 내용(content), 소속 카드(card), 작성자(user) 정보를 담을 Reply 엔티티를 설계하였다. @Entity @Table(name = "reply") public class Reply extends Timestamped { @Id @Generate..
· Spring
오늘은 스프링(Spring) 프레임워크에서 빈(Bean)의 스코프에 대해 학습하였다. 싱글톤(Singleton) 스코프: 싱글톤 스코프는 스프링 컨테이너 내에서 해당 빈의 인스턴스가 하나만 생성되고, 여러 곳에서 공유하여 사용되는 스코프이다. 기본적으로 모든 빈은 싱글톤 스코프로 생성된다. 스프링 컨테이너가 시작될 때 해당 빈의 인스턴스가 생성되며, 컨테이너가 종료될 때 소멸된다. 프로토타입(Prototype) 스코프: 프로토타입 스코프는 빈의 인스턴스가 요청할 때마다 매번 새로운 인스턴스가 생성되는 스코프이다. 이는 각각의 요청 또는 사용마다 독립적인 인스턴스를 생성하고자 할 때 유용하다. 스프링 컨테이너는 프로토타입 빈을 생성하고 주입하며, 프로토타입 빈을 사용한 클라이언트는 해당 빈을 직접 관리해야..
· Spring
오늘은 스프링부트에 뷰.js를 설치하고 연동해보는 시간을 가져보았다. 우선 스프링부트 프로젝트를 설치하는건 넘기고 Vue.js를 설치하는 단계부터 한다. 인텔리제이 기준으로 설명하겠다. 우선 인텔리제이 상에서 터미널을 킨다. 그리고 이코드를 입력한다. npm install -g @vue/cli 참고로 npm과 node.js가 설치가 되어있어야한다. 설명은 vue-cli를 글로벌하게 설치하겠다는 의미이다. 설치가 완료되고나면 vue --version쳐보면 버전이 나올것이다. 그러고 난뒤 vue.js를 프로젝트안에 설치할것이다. 이 줄을 입력하자. vue create frontend 프로젝트안에 frontend라는 이름의 vue 프로젝트를 설치하겠다는 뜻이다. 또한 뷰 버전을 어떤걸로 고를것인지 뜰것이다. ..
· Spring
오늘은 스프링 부트를 생성할 때 자동으로 생성되는 라이브러리와 터미널을 통해 ./gradlew build와 java -jar를 실행하여 서버를 직접 작동해보는 과정을 배웠다. 나중에 AWS EC2 같은 가상환경에서 실행해볼 수 있기에 실습하면 좋을것이다. 스프링 부트 생성 라이브러리: 스프링 부트 프로젝트를 생성할 때, 자동으로 생성되는 라이브러리들에 대해 알아보았다. 스프링 부트 프로젝트는 Maven 또는 Gradle 빌드 도구를 사용하여 생성할 수 있는데, 기본적으로 다음과 같은 라이브러리들이 생성된다. Spring Boot Starter Web: 웹 애플리케이션을 개발하는 데 필요한 Spring Web, Spring MVC 등의 모듈을 포함한다. Spring Boot Starter Test: 단위 ..
· Spring
오늘은 스프링부트에서 JSP를 사용하는법에 대해서 글을 작성하고자한다. 스프링부트에서는 이제 JSP를 사용하지않고 Thymeleaf를 공식적으로 지원하고있다. 하지만 국내에선 JSP를 사용하는 곳이 많고 나 또한 JSP를 사용해보고 경험을 해보고 싶었기에 방법을 찾고 적용해보았다. 우선 빌드는 Gradle을 기준으로 설명한다. 프로젝트를 생성하고 타입은 Gradle - Groovy를 선택후 패키지 생성은 Jar이 아닌 War을 사용하여 생성한다. 그리고 종속성은 Spring Web과 Lombok을 선택후 프로젝트를 생성한다. 생성후 Bulid.gradle로 들어가 dependencies 안에 4줄을 추가한다. implementation 'org.apache.tomcat.embed:tomcat-embed-..
· Spring
오늘 프로젝트를 진행하면서 최근 비밀번호 3번을 기억한후 그 비밀번호로 바꾸려하면 변경이 불가능하게 만드는 메서드를 짜봤다. 우선 엔티티에 최근 비밀번호 3개를 담을 어레이리스트를 생성한다. @ElementCollection @CollectionTable(name = "previous_passwords", joinColumns = @JoinColumn(name = "users_id")) @Column(name = "password") private List previousPasswords = new ArrayList(); RDB에서는 컬렉션 형태의 엔티티는 저장할 수 없다. 그렇기에 별도의 테이블을 생성해줘야 한다는것을 알려줘야하는데 그것을 해주는 어노테이션이 @ElementCollection이다. 그리..
· Spring
오늘은 Spring Boot에서 OAuth2를 구현하는 방법에 대해 학습했다. OAuth2는 사용자 인증 및 인가를 위한 개방형 표준 프로토콜로, 외부 서비스(소셜 미디어, 클라우드 서비스 등)의 인증 기능을 애플리케이션에 통합하는 데 사용된다. Spring Boot에서 OAuth2를 구현하기 위해 다음과 같은 단계를 거친다. 의존성 추가: Spring Security와 OAuth2 클라이언트 관련 의존성을 프로젝트에 추가한다. 소셜 애플리케이션 등록: OAuth2를 사용할 서비스 제공자(소셜 미디어 등)에서 애플리케이션을 등록하고 클라이언트 ID와 클라이언트 시크릿을 발급받는다. Spring Security 구성: SecurityConfig 클래스를 작성하여 Spring Security를 구성한다. O..
· Spring
오늘은 Thymeleaf라는 템플릿 엔진에 대해 학습하였다. Thymeleaf는 서버 사이드 Java 템플릿 엔진으로, HTML, XML, JavaScript, CSS 등 다양한 마크업 언어를 처리할 수 있다. Thymeleaf의 주요 특징: 자연스러운 템플릿: Thymeleaf는 템플릿 파일을 일반적인 마크업 문서로 유지할 수 있게 해준다. 템플릿 파일은 HTML 코드의 형태를 그대로 유지하면서 동적인 데이터를 삽입할 수 있다. 서버 사이드 렌더링: Thymeleaf는 서버 사이드에서 동작하는 템플릿 엔진이기 때문에, 서버에서 동적으로 HTML을 생성하여 클라이언트에 전달한다. 이를 통해 동적인 데이터를 포함한 HTML 페이지를 생성할 수 있다. 간편한 템플릿 변수 사용: Thymeleaf는 템플릿 변..
Msungmin
'Spring' 카테고리의 글 목록