spring69 [Spring] 쓰레드 로컬 - ThreadLocal - 2 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 5. ThreadLocal - 소개 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 쓰레드 로컬은 해당 쓰레드만 접근할 수 있는 특별한 저장소를 말한다. 쉽게 이야기해서 물건 보관 창구를 떠올리면 된다. 여러 사람이 동일한 물건 보관 창구의 직원에게 물건을 전달하면, 직원은 사용자를 인식해서 사용자별로 확실하게 물건을 구분해준다. 쓰레드 로컬을 사용하면 각 Thread마다 별도의 내부 저장소를 제공한다. 따라서 같은 인스턴스의 쓰레드 로컬 필드에 접근해도 문제 없다. thread-A 가 userA 라는 값을 저장하면 쓰레드 로컬은 thread-A 전용 보관.. BackEnd/Spring 2022. 8. 5. [Spring] 예제 만들기 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1. 예제 프로젝트 만들기 - V0 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 이번시간에는 아주 간단한 예제 프로젝트를 만들었다. 코드 설명할 부분도없다. ▶ OrderRepositoryV0 @Repository @RequiredArgsConstructor public class OrderRepositoryV0 { public void save(String itemId) { //저장 로직 if (itemId.equals("ex")) { throw new IllegalStateException("예외 발생!"); } sleep(1000); } priva.. BackEnd/Spring 2022. 8. 3. [Spring] 스프링의 3대 요소 (IoC/DI, PSA, AOP) Spring의 핵심적인 요소 3가지가 있다. 이에 대하여 잘 알고 있다 생각했는데, 막상 대답해주려니 생각보다 나의 생각을 전달하기가 어려웠다. 이번 기회에 3대 요소에 대하여 간단하게나마 정리를 해볼까 한다. IoC/DI PSA AOP 1. 공통 프로그래밍 모델 Application을 구성하는 객체(Bean)가 생성되고 동작하는 틀을 제공해줄 뿐만 아니라, 애플리케이션 코드를 어떻게 작성해야 하는지에 대한 기준도 제공한다. 이를 일반적으로 프로그래밍 모델이라고 부르는데, 스프링에서는 크게 3가지 핵심 프로그래밍 모델을 지원한다. 1-1) IoC/DI (제어의 역전/ 의존성 주입) IoC/DI는 객체의 생명주기와 의존 관계를 관리하기 위한 모델이다. ▶ 제어의 역전 IoC(Inversion of Cont.. BackEnd/Spring 2022. 7. 22. [Spring] Spring 환경변수 설정파일 선택하기 이번 글은 프로젝트를 진행하면서 문제가 됬었던 부분을 정리, 요약 하는 글 입니다. (미래의 나를 위해!) 1. 문제의 상황 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 우리의 Spring 프로젝트에서 사용한 yml파일은 다음과 같습니다. spring: profiles: active: local datasource: url: ${datasource} driver-class-name: com.mysql.cj.jdbc.Driver username: ${username} password: ${password} jwt: token: validate-time: 1800 token-secret: "Shine-Lucid" kakao: token-server-uri: "https:/.. BackEnd/Spring 2022. 6. 12. [AWS] Github Actions, CodeDeploy, Nginx 로 무중단 배포하기 - 1 이번글은 Github Actions를 활용한 무중단 배포를 시도하면서 (미래의 저를 위해)과정을 정리한 글 입니다. AWS free tier 상에서 가능한 최소한의 무중단 배포를 진행해보도록 하겠습니다. 총 4개의 시리즈 글로 진행될 것 입니다. 1) Github Actions 과 AWS S3 연동 (이번 글) 2) EC2 설정과 CodeDeploy 적용 3) EC2와 RDS 4) Nginx 설치와 배포스크립트 ▶ 전체 흐름도 우선 전반적인 흐름은 다음과 같습니다! 과정을 진행하면서 막힐때, 다음 그림을 보면서 생각해보시면 어떤 부분에서 막히고 있는지 이해하기 쉬우실 거에요! 우선 간단하게 흐름을 요약해보면! Github Actions에서 프로젝트를 우선 build 하고, 결과물인 jar 파일을 압축해서.. DevOps/AWS 2022. 5. 31. [Spring Security] 스프링 시큐리티로 OAuth 로그인 구현하기 이번 시간에는 삽질을 하면서 구현한 OAuth 로그인에 대하여 정리하는 글 입니다. 이번 글 에서는 Spring Security를 활용하여 로그인을 구현해보려 한다. 기본 id, password 로그인 방식 + OAuth 로그인 방식을 동시에 구현할 것 이다! 기회가 된다면 다음번 글로 Spring Security 없이 로그인 하는 글 또한 올려보겠다. 1. 사전 구현 준비 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 1-1. 의존성 추가하기 우선 의존성은 다음과 같다. dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.spring.. BackEnd/Spring Security 2022. 5. 10. [Spring] CORS 문제 해결하기 1. CORS " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 1. CORS 란? CORS는 Cross-Origin Resource Sharing 의 줄임말로, 다른 출처의 리소스를 공유하는 것 을 의미합니다. 즉, 다른 출처 간의 자원을 공유하는 정책이라고 생각하면 된다. 따로 CORS를 설정해주지 않는다면 해당 리소스를 공유하지 못하는 문제가 발생하게 됩니다. 크롬에서 위와같이 No 'Access-Control-Allow-Origin' 이라는 경고나 발생하고 있다! 2. 출처 란? 그럼 출처는 뭘 의미하는 것 일까? 예를 들어 www.google.com 같은 URL은 여러 개의 구성 요소로 이루어져 있다. URL의 구성 요소 Protocol, Host, Path, Qu.. BackEnd/Spring 2022. 4. 26. [Review] 2022/04/20 1차 PR (반찬 서비스) 이번 리뷰는 wooody 께서 해주셨다! 리뷰해주셔서 감사합니다 !! 1. 질문 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 팀원과 Spring Data Jdbc를 사용하던 도중, OneToMany 관계를 이용할 때 Map을 통해 저장하도록 하였었습니다. Category : item = 1 : N 의 관계로 말이죠! 하지만 해당 Map을 이용할 경우 어그리게이트 루트에 해당되는 Category는 auto_increment가 잘 적용되지만, item은 auto_increment가 정상작동하지 않았습니다. 혹시 Map을 사용할때는 id값을 직접 지정해줘야 하나요? @Test public void itemSaveTest() { // given Category mainCate.. CODE SQUAD/FeedBack 정리 2022. 4. 21. [JPA] 다양한 연관관계 매핑 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 0. 연관관계 매핑시 고려할점 3가지 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 ● 다중성 다대일: @ManyToOne 일대다: @OneToMany 일대일: @OneToOne 다대다: @ManyToMany => 다대다는 실무에서 사용하면 안된다. ● 단방향, 양방향 - 테이블 외래키 하나로 양쪽 Join 가능하다. 사실상 방향이라는 개념이 없다. - 객체 참조용 필드가 있는 쪽에서 참조 대상으로만 참조가 가능하다. 한 쪽만 참조하면 단방향, 양쪽이 서로 참조하면 양방향 이다. ● 연관관계의 주인 테이블은 외래 키(FK) 하나로 두 테이블의 연관관계를 .. BackEnd/JPA 2022. 4. 4. [JPA] 연관관계 매핑 기초 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1. 단방향 연관관계 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 우리는 객체와 테이블 연관관계의 차이를 이해해야 합니다. 객체지향의 페러다임과 RDB의 페러다임 간의 간극에서 오는 차이가 있으며 이를 인지하고 공부해야 합니다. 1. 연관관계의 필요성 객체지향 설계의 목표는 자율적인 객체들의 협력 공통체를 만드는 것이다. (조영호) 2. 객체를 테이블에 맞춰 데이터 중심으로 모델링하면, 협력 관계를 만들 수 없다. ● 객체를 테이블에 맞춰 모델링 하기 (연관관계가 없는 객체) 우선 모델링할 다이어 그램을 살펴보자. MEMBER 테이블에서 TEAM의 PK.. BackEnd/JPA 2022. 4. 3. [JPA] 엔티티 매핑 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1. 객체와 테이블 매핑 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 ● @Entity 1. @Entity가 붙은 클래스를 엔티티 라고 하며, JPA가 관리한다. 2. JPA를 사용해서 테이블과 매핑할 클래스는 @Entity가 필수이다. 3. 주의사항 - 기본 생성자 필수(파라미터가 없는 public or protected) - final 클래스, enum, interface inner 클래스 사용 x - 저장할 필드에 final 사용 X 4. 속성 정리 - name 속성 JPA에서 사용할 엔티티의 이름을 지정할수가 있다. 만약 name 속성을 지정하지.. BackEnd/JPA 2022. 4. 2. [JPA] 영속성 관리 - 내부 동작 방식 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1. 영속성 컨텍스트 1 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 엔티티는 테이블과 매핑되는 하나의 클래스이다. 우선 엔티티 메니저 팩토리를 통해 엔티티 매니저를 생성하는 과정을 살펴봅시다. EntityManagerFactory는 어플리케이션 로딩 시점에 딱 하나만 생성되어야 한다. 이후 사용자의 요청이 들어올때마다 EntityManager를 생성하게 됩니다. 고객의 요청이 들어오면 EntityManager를 생성하고, 요청에 의한 쿼리문이 다 작업이 끝나면 다시 close() 하기를 반복합니다. (EntityManager는 Thread 공유를 하면.. BackEnd/JPA 2022. 4. 2. 이전 1 2 3 4 5 6 다음