choiDev

고정 헤더 영역

글 제목

메뉴 레이어

choiDev

메뉴 리스트

  • 홈
  • 방명록
  • 자바
  • 자바로 푼 알고리즘
  • 안드로이드
  • 네트워크
  • 컴퓨터 구조
  • 책 리뷰
  • 재테크
  • 취미 회계
  • 개발자의 여행 방식
  • 글 쓰기
  • 분류 전체보기 (170)
    • 스타트업 회고 (0)
    • Network (20)
    • Programming language (29)
      • C 언어 (0)
      • 자바 (12)
      • Kotlin (17)
    • Algorithm (36)
    • Data Structure (10)
    • Android (36)
      • 안드로이드 (Realm) (0)
      • RxJava (0)
    • Backend (18)
    • React (2)
    • IT에 대해 (9)
    • 앱 or 서비스 리뷰 (0)
    • Slack (1)
    • GIT (1)
    • Database (1)
      • MySql (1)

검색 레이어

choiDev

검색 영역

컨텐츠 검색

Backend

  • [Spring] 장애 기록 - JsonMappingException: Infinite recursion (StackOverflowError)

    2024.02.01 by choiDev

  • [AWS] S3(Simple Storage Service)

    2024.01.29 by choiDev

  • [Spring] Spring Security - 스프링 시큐리티

    2024.01.11 by choiDev

  • [오늘의집 클론코딩] 간편회원가입, 자체회원가입 함께 적용 1화 - Meow Developers

    2024.01.11 by choiDev

  • [JPA] @AttributeOverride

    2024.01.07 by choiDev

  • [JPA] Transaction Lock(트랜잭션 락)

    2023.12.30 by choiDev

  • [TDD] Spock이란? [1/3]

    2023.12.29 by choiDev

  • [JPA&Hibernate] 지연로딩을 가능하게 하는 Proxy란?

    2023.12.28 by choiDev

[Spring] 장애 기록 - JsonMappingException: Infinite recursion (StackOverflowError)

현재 몸 담고 있는 스터디 팀 (Meow Developers)에서는 오늘의 집을 클론 코딩을 하고 있습니다. 클론코딩하면서 단순히 동일한 기능을 찍어내겟다! 라기 보단 해당 기능을 어떤 생각으로 기획했는지 의도를 분석하고 최대한 동일한 환경을 구축하려고 노력하고 있습니다. 저희 팀은 기획자를 모시지 않고 있으며 개발자가 개발만? No 도메인을 이해 못하면 테스트 케이스도 제대로 못 뽑는다 라는 철학을 가지고 움직이고 있습니다. 본 글은 프로젝트를 진행하면서 2테이블의 관계를 OneToMany ManyToOne으로 관계를 맺고 사용하는데 직렬화 과정에서 JsonMappingException: Infinite recursion (StackOverflowError) 에러가 떨어져 원인 확인 및 해소 과정을 기..

Backend 2024. 2. 1. 00:13

[AWS] S3(Simple Storage Service)

AWS S3 (Simple Storage Service)란 데이터가용성, 보안 및 성능을 제공하는 클라우드 저장소 서비스 입니다. S3 주요 용어 Bucket(버킷) 1. AWS에서 데이터를 저장하는 컨테이너 2. 모든 객체(파일, 데이터)등은 이곳에 저장됩니다. 3. 버킷 이름은 전세계에서 고유 해야합니다. Object(객체) 1. A3에서 데이터가 저장되는 기본 단위입니다. 2. 객체는 데이터와 메타데이터로 구성되어있습니다. 3. 각 객체는 버킷내에 고유한 파일 명을 가지고 있습니다. Region(리전) 1. AWS S3는 여러 지역에 데이터 센터를 두어 사용자가 가장 가까운 지역에 데이터를 엑세스 할 수 있습니다. 2. 각 리전은 별도의 AWS S3 인스턴스를 가지고 있어 리전이 달라지면 보유하고있..

Backend 2024. 1. 29. 23:58

[Spring] Spring Security - 스프링 시큐리티

Spring Security란? 시스템에 대한 인증(Authentication), 인가(Authorization)등의 기능을 가진 프레임 워크입니다. Spring Security특징 강력한 인증 및 인가 지원 스프링 시큐리티는 다양한 인증 메커니즘을 지원하며, 세밀한 인가 기능을 제공합니다. 이는 폼 기반 인증, HTTP Basic인증, OAuth, LDAP, JWT 등을 포함합니다. 세션관리 스프링 시큐리티는 세션 고정 보호, 세션 만료, 동시 세션 제어등 세션관리와 관련된 다양한 기능을 제공합니다. CSRF(Cross-Site Request Forgery)보호 기본적으로 CSRF 보호가 활성화되어 있어, 웹 애플리케이션을 CSRF 공격으로부터 보호합니다. Method Security @PreAutho..

Backend 2024. 1. 11. 22:08

[오늘의집 클론코딩] 간편회원가입, 자체회원가입 함께 적용 1화 - Meow Developers

현재 몸 담고 있는 스터디 팀 (Meow Developers)에서는 오늘의 집을 클론 코딩을 하고 있습니다. 클론코딩하면서 단순히 동일한 기능을 찍어내겟다! 라기 보단 해당 기능을 어떤 생각으로 기획했는지 의도를 분석하고 최대한 동일한 환경을 구축하려고 노력하고 있습니다. 저희 팀은 기획자를 모시지 않고 있으며 개발자가 개발만? No 도메인을 이해 못하면 테스트 케이스도 제대로 못 뽑는다 라는 철학을 가지고 움직이고 있습니다. 오늘의 집의 회원가입은 위 이미지와 같이 (간편 회원가입 + 자체 회원가입) 2가지를 지원하는 형태이며 이 과정을 설계하면서 가장 중요하다고 생각한건 간편회원가입 방식 3개와 + 자체 회원가입1개 이 모든 회원가입 방식에 따라 전부 각각의 계정이 생성되는건가? 라는 의문이 들었고 ..

Backend 2024. 1. 11. 11:23

[JPA] @AttributeOverride

현재 진행하는 사이드 프로젝트에서 매번 Entity(테이블)이 추가될 때 마다 중복된 컬럼들을 모든 Entity에 생성한다면 그만큼의 보일러 플레이트도 없겠다는 생각이 있어 해당 부분도 제거 라는 생각에 BaseEntity를 만들었다. import jakarta.persistence.*; import lombok.Getter; import lombok.Setter; import org.springframework.data.annotation.CreatedDate; import org.springframework.data.annotation.LastModifiedDate; import org.springframework.data.jpa.domain.support.AuditingEntityListener; ..

Backend 2024. 1. 7. 22:04

[JPA] Transaction Lock(트랜잭션 락)

트랜잭션 락은 데이터베이스에서 여러 트랜잭션이 동시에 데이터에 접근하고 수정하는 것을 제어하기 위해 사용되는 메커니즘입니다. (동시성 이슈 해소용) 트랜잭션 락은 크게 2가지 유형으로 나뉩니다. 비관적 락(Pessimistic Locking) 이란? 데이터를 읽을 때부터 업데이트가 완료될 때까지 해당 데이터를 다른 트랜잭션이 읽지 못하도록 락을 거는 방식입니다. 락을걸고 있는 동안 다른 트랜잭션은 해당 데이터에 대한 읽기 및 쓰기 권한을 얻을 수 없습니다. 낙관적 락(Optimistic Locking) 이란? 트랜잭션은 데이터를 읽을 때 락을 걸지 않고, 업데이트 시에 충돌을 감지 하기 위해 추가벙보(버전 번호등)을 사용합니다. 데이터를 읽을때 버전 정보를 기록하고 업데이트 시에 읽었을때와 버전이 같은지..

Backend 2023. 12. 30. 22:05

[TDD] Spock이란? [1/3]

Spock은 BDD(Behavior Driven Development)를 위한 테스팅 프레임워크이며 Groovy 언어를 사용합니다. Groovy언어란? 1. 자바에 파이썬, 루비, 스몰토크 등의 특징을 더한 동적 객체 지향 프로그래밍 언어이며 2. 자바 가상 머신에서 동작합니다. 3. 자바 프로그래머들이 큰 학습 없이도 빠르게 습득이 가능합니다. 4. 메타프로그래밍이 가능하다 (자기 자신 혹은 다른컴퓨터 프로그램을 데이터로 취급하며 프로그램을 작성 수정하는 행위) 즉 런타임에 수행해야할 작업의 일부를 컴파일 타임 동안 수행하는 프로그램을 말하기도 함 5. 자바에서 지원하는 리스트 맵 정규식을 위한 구문등도 제공해 자바와 언어 구조가 흡사하다 6. 자바 소스는 컴파일 이후 사용 가능하지만 그루비 소스는 스..

Backend 2023. 12. 29. 00:57

[JPA&Hibernate] 지연로딩을 가능하게 하는 Proxy란?

JPA Proxy란? JPA의 ORM 기술중 하나로 Proxy는 Entity를 대행하는 클래스(객체)를 뜻합니다. Proxy는 Entity를 상속받아 런타임에 생성되는 클래스로 지연 로딩(Lazy Loading)을 사용하기 위해 사용됩니다. @Entity public class Order { @Column(name = "product") private String product; //fetch 속성이 LAZY인경우 Order를 호출할때 customer를 //사용하지 않는다면 customer는 지연로딩이 되어 실제 사용시점에 호출됩니다. @ManyToOne(fetch = FetchType.LAZY) private Customer customer; } 지연로딩(Lazy Loading)이란? 특정 엔티티를 로..

Backend 2023. 12. 28. 00:46

추가 정보

인기글

최신글

페이징

이전
1 2 3
다음
TISTORY
choiDev © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바