일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 코테
- 알고리즘
- 정보처리기사
- groupby
- doitandroid
- Kotlin
- 안드로이드
- 자료구조
- CS
- 정처기
- 스터디
- java
- 오블완
- 혼공챌린지
- 기술면접
- 프로그래머스
- 코틀린
- MySQL
- 혼공단
- join
- select
- Android
- 티스토리챌린지
- Til
- 자바
- 혼공파
- 인프런
- 안드로이드스튜디오
- SQL
- 카카오코테
- Today
- Total
목록분류 전체보기 (372)
Welcome! Everything is fine.

QueryDSL란?DSL(Domain-Specific-Language) : 특정 도메인에서 발생하는 문제를 효과적으로 해결하기 위해 설계된 언어.(ex. SQL, CSS, Regex 등)QueryDSL : SQL 형식의 쿼리를 Type-Safe하게 생성할 수 있도록 하는 DSL을 제공하는 라이브러리. 엔티티의 매핑정보를 활용하여 쿼리에 적합하도록 쿼리 전용 클래스(Q클래스)로 재구성해준다.✔️ Q클래스란?Q클래스란 엔티티 클래스 속성과 구조를 설명해주는 메타데이터로, Type-Safe하게 쿼리 조건을 설정할 수 있다.annotationProcessor를 통해 생성된 실제 Q클래스는 다음과 같다.다 캡쳐하진 못했지만, Todo의 필드가 QTodo에서도 보이는 것을 알 수 있다. QueryDSL 시작하기qu..

이번 개인 과제 중 AWS를 실습하는 부분이 있는데, 요구사항은 다음과 같다. 먼저 EC2와 RDS를 구축하고 연결하는 과정을 기록해보려고 한다.✍🏻✔️ EC2- EC2 인스턴스에서 어플리케이션을 실행한다.- 탄력적 IP를 설정해 외부에서도 접속할 수 있도록 한다.- 서버 접속 및 Live 상태를 확인할 수 있는 health check API를 만든다.✔️ RDS- RDS 데이터베이스를 구축한다.- EC2에서 실행되는 어플리케이션에 연결한다.✔️ S3- S3 버킷을 생성한다.- 유저의 프로필 이미지 업로드 및 관리 API를 구현한다.프로젝트를 EC2에 배포하기로컬에서 프로젝트 빌드하기인텔리제이에서 프로젝트를 빌드해보자! EC2 인스턴스는 이미 만들어놨다는 가정 하에 진행하겠다.1) Gradle 탭에서 ..

S3(Simple Storage Service)란?Amazon S3는 정적 웹 사이트 호스팅, 온라인 백업, 데이터 아카이브, 기업 애플리케이션, Big Data 분석 등 다양한 용도로 사용된다.버킷(Buckets) : 데이터를 저장하는 가장 상위 레벨의 폴더 형태의 컨테이너. S3에 저장되는 파일들을 ‘객체’라고 부르고, 모든 객체는 ‘키’(디렉토리)로 식별된다.버킷 이름 규칙대문자와 언더스코어 사용 금지길이 제한: 3자 이상, 63자 이하로 작성소문자, 숫자, 점(.) 그리고 하이픈(-)만 사용 가능반드시 문자 또는 숫자로 시작하고 끝내기두 개의 점(.) 연속 사용 금지IP 주소 형식 사용 금지S3 시작하기버킷 만들기Create bucket을 눌러 버킷을 생성해보자! 이름만 정하고 다른 옵션은 일단..
지난 프로젝트에서 다른 팀원 분이 상수를 인터페이스로 관리하는 것을 봤다. final 클래스나 enum 클래스를 사용하는 것이 더 나은 것이 아닐까? 하는 궁금증이 들어 검색도 해보고 튜터님께 찾아가 질문해봤다. 예시 코드는 내가 작성한 에러 메세지 enum 클래스인데, GPT한테 각각의 경우에 맞게 수정을 해달라고 해봤다.final 클래스로 상수 관리하기상수를 관리하려고 할 때 사용되는 가장 고전적인 방법이 아닐까 싶다. final 클래스를 만들고 , 상수들을 static final로 선언한다. 이렇게 하면 정적 import를 통해 클래스 이름을 생략해서 사용할 수 있다는 장점이 있다. 하지만 확장성과 유지보수성 측면에서 enum보다 떨어진다. 만약 final 클래스로 상수를 관리한다면 기본 생성자..

스파르타코딩클럽 AWS의 모든 것 (All about AWS) 강의를 듣고 정리한 내용입니다.RDS란?Relational Database Service(RDS) : AWS에서 제공하는 관리형 관계형 데이터베이스 서비스. Postgres, MySQL, MariaDB, Oracle, Microsoft SQL Server 등 다양한 엔진을 선택할 수 있으며, EC2에 직접 DB를 설치·운영하는 방식보다 운영 부담이 적다.RDS 특징자동 인프라 구축 및 관리DB 설치, 패치, 유지보수 작업을 AWS가 수행한다.자동 백업과 복구지속적인 자동 백업 지원지정한 기간 내 언제든 복구 가능모니터링 지원성능 모니터링과 대시보드 제공확장성스토리지 자동 확장 지원보안성VPC, IAM, KMS로 데이터 보안 강화SSH 접근 불..

Spring Security란?스프링 시큐리티(Spring Security) : 스프링 기반 애플리케이션에 강력한 인증/인가 기능을 제공하는 보안 프레임워크.Spring Security와 JWT를 함께 사용하면 Stateless하게 사용하기 때문에 간단하게 적용할 수 있다.Security 보안을 통과하려면 SecurityContext에 AbstractAuthenticationToken을 set해줘야 한다!SecurityContext : 한 요청 내에서 현재 인증된 사용자와 그 사용자가 가지는 권한을 알려주는 객체.보통 하나의 Authentication 객체를 포함하며, 그 객체는 다음과 같은 것들을 가지고 있다.사용자(Principal)인증 방식인증 상태사용자 권한 목록(GrantedAuthorities..

어제 Spring Security 도입을 마무리 하고, 다음 단계를 진행하다가 일정을 생성하는 부분에서 다음과 같이 NPE가 발생했다. Postman에서는 403 Forbidden 에러가 난 상황이다. 회원가입과 로그인은 정상적으로 됐고, DB에도 모든 정보가 다 빠짐없이 들어있다. 왜 userRole이 null인가...🤔 DB에도 다 들어있는데 왜 null이지...? 이 상황을 믿을 수가 없어 생성자에서 userRole이 null일 때 에러를 던지도록 해 다시 한 번 확인해봤다. null이 맞다. 그렇다면 왜일까? 검색의 늪에 빠져있다가 여러 상황을 가정하고 확인해보았다.JwtUtil과 JwtAuthenticationFilter에서userRole을 다른 단어로 입력한 경우 → 둘 다 userRole로..

깃허브에 시크릿키를 올리는 것은 위험하다. 따라서 우린 시크릿키를 내 로컬 파일에만 따로 적어놓고 깃허브에는 올라가지 않도록 해야한다. 먼저 resource 패키지 아래에 .env 파일을 만들고 올라가면 안되는 정보를 넣어준다. 그리고 인텔리제이 오른쪽 상단에 있는 점 세개를 누른 후 Edit...에 들어간다. 현재 내가 이미 환경 변수를 설정해놓은 상태지만, Environment variables가 없다면 Build and Run 옆에 있는 Modify options를 누른다. 그럼 이렇게 옵션들을 추가할 수 있는데, Environment variables를 추가해준다. 이제 이 환경 변수 경로를 설정해야한다. 경로는 .env 파일이 있는 경로로 설정하면 된다. 그리고 .env 파일 역시 깃허브에 올라..