본문 바로가기

Study

[백엔드온라인TIL] OAuth의 동작원리, pk와 fk 복습 (59일차) OAuth(OAuth2.0)란 무엇일까? 소셜로그인이 작동하는 법 사이트에 회원가입을 하지않아도 이미 가지고 있는 아이디를 통해 로그인할 수 있게 만드는 소셜로그인. 많은 사람들이 들어봤거나 사용해봤을 것이다. 이렇게 간편한 로그인은 OAuth를 통해서 구현할 수 있다. 이 OAuth는 무엇이고 어떻게 작동하는 것인지 궁금해져서 이번 기회에 간단하게 정리해보려고한다. What is OAuth? OAuth는 Open Authorization의 줄임말로 보안 위임 엑세스(secure delegated access) 개방형 표준(open standard)이다. 현재 OAuth1.0과 OAuth2.0 두 버전이 존재한다. Open Standard 많은 사람들이 OAuth를 API라고 생각하는데 OAuth는 개방.. 더보기
[백엔드스터디WIL] jpa에서 cascade와 orphanremoval의 차이 (12주차) 이번주는 사용할 때마다 헷갈릴 수 있는 개념 cascade 옵션과 orphanremoval 옵션의 사용상 차이점에 대해 알아보았다. JPA를 공부하다 보면 바로 이해하기 쉽지 않은 개념들을 몇 개 마주친다. 필자는 연관관계 매핑, 영속성 전이, 고아 객체 등이 특히 어려웠다. 이번 글에서는 영속성 전이(REMOVE)와 고아 객체를 학습 테스트를 통해 비교하여 살펴본다. 최종적으로 독자들이 둘의 차이를 이해하는 것을 목표로 한다. 엔티티 기본 세팅 Team과 Member 엔티티를 바탕으로 두 개념의 공통점과 차이점을 알아본다. Team은 @OneToMany, Member는 @ManyToOne으로 양방향 매핑을 했다. // Team.java @Entity public class Team { @Id @Gene.. 더보기
[백엔드온라인TIL] cpu 스케쥴링 (58일차) 0.🚶들어가며 이전 글에서는 프로세스와 스레드에 대해 알아보았었습니다. 프로세스가 CPU에 할당을 받아야 작업을 수행한다고 했었죠. 이때 여러 프로세스 중 누가 CPU의 할당을 받을 것인지에 대한 내용을 다룬 CPU 스케줄링에 대해 글을 작성해보겠습니다. 1.⏰CPU 스케줄링이란? 이전 글에서 알아봤듯 프로세스는 생성되고 난 뒤 여러 상태를 거치게 됩니다. 운영체제의 CPU 스케줄러는 Ready 상태의 프로세스 중에서 어떤 프로세스에게 CPU를 할당할지 결정합니다. 이를 CPU 스케줄링이라 하는 것이죠. 또한 Dispatcher는 CPU 제어권을 CPU 스케줄러에 의해 선택된 프로세스에게 넘깁니다. 이를 Context Switch라고 합니다. CPU 스케줄링은 규모에 따라 장기, 중기, 단기 스케줄링으로.. 더보기
[백엔드온라인TIL] MVC 구조에 대해 각 역할과 흐름을 설명하시오 (57일차) 디자인 패턴 정의 소프트웨어 공학의 소프트웨어 설계에서 공통으로 발생하는 문제에 대해 자주 쓰이는 설계 방법을 정리한 패턴이다. 프로그램이나 어떤 특정한 것을 개발하는 중에 발생했던 문제점들을 정리해서 상황에 따라 간편하게 적용해서 쓸 수 있는 것을 정리하여 특정한 "규약"을 통해 쉽게 쓸 수 있는 형태입니다. 사용 이유 개발의 효율성, 유지보수성, 운용성이 높아지며 프로그램의 최적화에 도움이 됩니다. MVC 패턴이란? 프로그래밍을 할 때 전체적인 구조에 관련된 여러 디자인 패턴 중 하나 model, view, controller의 약자인 MVC 패턴은 하나의 어플리케이션, 프로젝트를 구성할때 그 구성요소를 세가지의 역할로 구분한 디자인 패턴입니다. 이 패턴을 성공적으로 사용시, 사용자 인터페이스로부터 .. 더보기
[백엔드온라인TIL] Spring Test junit5 (56일차) 테스트 인스턴스란? JUnit은 설정된 테스트 단위로 테스트 객체를 만듭니다. 이를 테스트 인스턴스라고 말합니다. 테스트 실행 범위라고 생각하시면 됩니다. 예를 보시면 더 빠른 이해가 가실 거에요. 아래 예제의 테스트를 전부 다 돌리면 어떤 결과가 나올까요? 저 test_1, test_2 메소드 중 하나는 테스트가 성공하지 않을까요? package com.effortguy.junit5; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertTrue; public class TestInstanceAnnotation { public int i=0; @Test void test_1() { assertTrue.. 더보기
[백엔드스터디WIL]JPA no Creators, like default constructor, exist):cannot deserialize from Object value (no delegate- or property-based Creator(11주차) org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.http.converter.HttpMessageConversionException: Type definition error: [simple type, class com.myproject.community.request.PostCreate]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `com.myproject.community.reques.. 더보기
[백엔드온라인TIL] Querydsl 활용 (55일차) Querydsl 3가지 방법 중 제가 테스트를 해본 2가지 방법 모두 적용방법을 알아보겠습니다. QuerydslRepositorySupport 상속받아서 사용 @Repository public class StoreRepositorySupport extends QuerydslRepositorySupport { private final JPAQueryFactory jpaQueryFactory; private final EntityManager entityManager; /** * Creates a new {@link QuerydslRepositorySupport} instance for the given domain type. * * @param domainClass must not be {@literal .. 더보기
[백엔드온라인TIL] github Action과 ci/cd (54일차) Github Action 이란? GitHub Actions는 GitHub에서 제공하는 서비스로, 빌드, 테스트, 배포 파이프라인을 자동화할 수 있는 CI(Continuous Integration, 지속 통합)와 CD(Continuous Deployment, 지속 배포) 플랫폼입니다. GitHub Actions를 사용하면 GitHub 리포지토리에서 손쉽게 CI/CD 결과를 확인하고 관리할 수 있습니다. 또한, YAML 포맷을 사용하여 가독성이 높고, 이미 구현되어 있는 수많은 액션을 활용하여 간단하게 CI/CD 플로우를 작성할 수 있습니다. 지속적 통합(Continuous Integration, CI) 현대적인 애플리케이션 개발에서는 여러 개발자들이 동일한 애플리케이션의 각기 다른 기능을 동시에 작업할 수.. 더보기
[백엔드온라인TIL] JPA 엔티티에 json 타입지정하기 (53일차) { "1": "첫번째 데이터", "2": "두번째 데이터", "3": "세번째 데이터", "4": "네번째 데이터", "5": "다섯번째 데이터", "6": "짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내용짱짱긴내.. 더보기
[백엔드온라인TIL] AWS S3로 다중 이미지 업로드 (52일차) AWS S3 AWS S3는 AWS에서 제공하는 Storage 서비스로서 아래와 같은 특징들이 있다 모든 종류의 데이터를 원하는 형식으로 저장 저장할 수 있는 데이터의 전체 볼륨과 객체 수에는 제한이 없음 Amazon S3는 간단한 key 기반의 객체 스토리지이며, 데이터를 저장 및 검색하는데 사용할 수 있는 고유한 객체 키가 할당됨 Amazon S3는 간편한 표준 기반 REST 웹 서비스 인터페이스를 제공 1. 준비 작업 S3에 이미지 업로드를 하기위해서는 사전 작업이 필요하다 (AWS 계정이 있다는 전제하에 필요한 작업들이다) AWS IAM 계정 - Access key, Secret key 생성 → 참고 S3 버킷 생성 → 참고 주의할 점은 발급받은 Access key와 Secret key는 절대 유출.. 더보기