728x90
반응형

Spring 25

[Spring] Singleton 사용 시 필드 변수 사용 주의❗

개요 싱글톤 방식은 객체 인스턴스를 하나만 생성하여 그 인스턴스를 공유하기 때문에 클라이언트 들이 하나의 인스턴스에 접근을 합니다. 그런데 이때 인스턴스에 있는 필드 변수를 사용하게 되면 문제가 발생할 수 있습니다. 해결방법 싱글톤 방식은 무상태(stateless)로 설계 해야합니다. 1. 클라이언트에게 의존적인 필드가 있으면 안됩니다. 2. 클라이언트가 변경할 수 있는 필드가 있으면 안됩니다. 3. 가급적 필드에 대해 읽기만 가능해야 합니다. 4. 필드 대신 지역변수, 파라미터, ThreadLocal을 사용해야 합니다. 문제점에 대한 예시 필드를 사용하고 클라이언트가 직접 필드의 값을 변경하는 경우 //게임에서 점수를 측정하는 서비스 public class ScoreCheckService { priva..

Spring 2022.07.11

[Spring] AppConfig을 통한 관심사 분리와 리팩터링

1. AppConfig를 통해서 구체 클래스를 선택합니다. 애플리케이션이 어떻게 동작할지에 대해 전체적인 구성을 책임집니다. public class AppConfig { //멤버에 대한 서비스를 정의한 인터페이스에 객체 의존 관계 주입 public MemberService memberService() { //MemberService 인스턴스를 생성하고 MySQL을 이용한 MemberRepository 객체의 의존성을 주입합니다. //다른 DB를 사용하고 싶다면 Repository 를 새로 생성해서 변경 가능합니다. return new MemberServiceImpl(new MySqlMemberRepository()); } //투두에 대한 서비스를 정의한 인터페이스에 객체 의존 관계 주입 public To..

Spring 2022.07.11

[Spring Boot] 프로젝트 만들기 - spring initializr, build.gradle, application.properties

spring initializr을 통한 프로젝트 만들기 spring initializr https://start.spring.io/ Lombok 자바 라이브러리로 클래스 생성시 반복되는 getter, setter, equals, toString 등의 메서드 작성 코드를 어노테이션 기반으로 자동 생성해주는 라이브러리 입니다. * 코드의 가독성을 높이고 개발의 생산성을 높일 수 있습니다. * Spring Web Spring MVC를 사용하여 RESTful을 포함한 웹 애플리케이션을 빌드합니다. Apache Tomcat을 기본 내장 컨테이너로 사용합니다. Spring Security Spring 애플리케이션을 위한 사용자 정의 가능한 인증 및 액세스 제어 프레임 워크로, Member 테이블의 비밀번호 필드를 ..

Project/Todo 2022.07.07

[기획 및 설계] 프로젝트 테이블 설계 및 예상 API

테이블 설계 ● Member Table Field Type Info member_id UUID Primary Key userID String userPW String Encrypt with Spring Security todo_id Long Foreign Key (1:N) memo_id Long Foreign Key (1:N) member_id 필드는 회원을 식별하기 위한 필드로 UUID를 무작위로 생성해서 자동으로 입력을 할 것입니다. userPW는 Spring Security를 사용하여 암호화 하고 로그인 시에도 복호화 하여 로그인을 진행할 것입니다. todo_id와 memo_id는 member->todo, member->memo, todo->member, memo->member 객체처럼 이동하기 위..

Project/Todo 2022.07.07
728x90
반응형