일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 안드로이드
- 정처기
- 정보처리기사
- 티스토리챌린지
- 혼공파
- java
- 안드로이드스튜디오
- 알고리즘
- 오블완
- groupby
- select
- MySQL
- 카카오코테
- Kotlin
- 인프런
- Til
- 프로그래머스
- 혼공챌린지
- 기술면접
- 스터디
- 코틀린
- 혼공단
- SQL
- 코테
- 자료구조
- Android
- join
- doitandroid
- 자바
- CS
- Today
- Total
목록TIL (65)
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..

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 도입을 마무리 하고, 다음 단계를 진행하다가 일정을 생성하는 부분에서 다음과 같이 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 파일 역시 깃허브에 올라..
이번 프로젝트를 끝내고, 지난 프로젝트에서 아쉬웠던 점을 정리해봤다.🖋️그런 점을 이번 프로젝트에서 꽤 많이 개선한 것 같고, 이번 프로젝트에서의 아쉬운 점 역시 다음 프로젝트에서 개선할 수 있다면 좋을 것 같다!팀원들과 사소한 것 하나까지 공유하자지난 프로젝트에서는 git에 익숙하지 않은 팀원분들이 많았다. 그래서인지 사실 내가 맡은 기능을 개발하는 시간보다 git 관련 문제를 해결하는데 더 많은 시간을 쓴 것 같다. 우리팀에서 일어난 문제는 다음과 같았다.merge가 되면 develop에서 pull을 받은 후, 자신의 브랜치에서 작업을 해야한다. 그러나 중간에 확인해보니 팀원 모두가 pull을 받지 않고 작업을 하고 있다는 사실을 알았다. 자신의 브랜치에서는 자신이 맡은 기능만을 개발해야한다고 알고..

이번 심화 프로젝트를 진행하다가 튜터님께 피드백 받은 내용이 있다.사실 이 부분은 정신 놓고 코드 짠거 같아서 부끄럽지만..같은 실수를 하지 않기 위해 정리해본다. 🛠️ 변경 전 코드우선 OwnerOrderController는 가게 사장님이 들어온 주문을 수락 및 거절하는 API를 가지고 있다. 수락이 되었다면 음식조리중, 배달중, 배달완료 순으로 흐를 수 있도록 해야한다. 다음 코드를 보면, 각각의 상태에 따라 API가 다 따로 만들어져있다. 처음에는 상태가 되돌아 갈 수 없도록 하는 것에만 집중해서 예외 처리만 하고 끝냈다.@RestController@RequiredArgsConstructor@RequestMapping("/api")public class OwnerOrderController { ..