| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |
- 안드로이드
- 프로그래머스
- doitandroid
- 안드로이드스튜디오
- SQL
- 카카오코테
- 코테
- Kotlin
- 혼공파
- groupby
- 혼공챌린지
- 인프런
- 혼공단
- 기술면접
- 정보처리기사
- join
- 티스토리챌린지
- 자바
- 정처기
- MySQL
- java
- 자료구조
- Til
- select
- CS
- 알고리즘
- 오블완
- Android
- 코틀린
- 스터디
- Today
- Total
목록TIL (69)
Welcome! Everything is fine.
반복되는 취업 지원 관리가 번거로웠다 취업 준비를 하면서 지원 현황은 모두 Notion DB에 기록하고 있었다. 지원한 회사, 마감일, 지원일, 진행 상태 등을 한곳에서 관리할 수 있어 기록 자체는 어렵지 않았다. 문제는 기록하는 것보다 관리하는 것이었다. 지원하는 회사가 하나둘 늘어나자 매번 Notion을 열어 어떤 공고의 마감이 얼마 남았는지, 어떤 회사가 30일 넘게 연락이 없는지 직접 확인해야 했다. 합격·불합격 메일을 받으면 상태도 수동으로 수정해야 했는데, 가끔 이를 놓쳐 실제 진행 상황과 Notion의 내용이 달라지기도 했다. 문득 이런 생각이 들었다."Claude는 Notion도 읽을 수 있고 Gmail도 읽을 수 있는데, 이걸 내가 직접 관리할 이유가 있을까?" 그렇게 반복적인 취업 지원..
새 프로젝트를 만들 때마다 기본 브랜치가 master로 생성되는 게 불편하다면, 전역 설정 한 번으로 해결할 수 있다.설정해두면 이후 생성하는 모든 저장소에 자동으로 적용된다.기본 브랜치 변경터미널에서 아래 명령어를 실행한다.git config --global init.defaultBranch main설정 확인아래 명령어로 현재 설정값을 확인할 수 있다.git config --global --get init.defaultBranch 정상적으로 설정되었다면 main이 출력된다.main동작 확인새 디렉터리를 만들고 Git 저장소를 초기화해서 직접 확인해볼 수 있다.mkdir test-gitcd test-gitgit initgit branch main 브랜치로 초기화된 것을 확인할 수 있다.이미 master로..
해당 포스팅은 를 읽고 정리한 내용입니다. 디자인 패턴이란 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용해 해결할 수 있도록 하나의 '규약' 형태로 만들어 놓은 것이다. 디자인 패턴의 종류에는 싱글톤 패턴, 팩토리 패턴, 전략 패턴, 옵저버 패턴, 프록시 패턴, 이터레이터 패턴, 노출모듈 패턴, MVC 패턴, MVP 패턴, MVVM 패턴 등이 있다.싱글톤 패턴하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴. 싱글톤 패턴은 하나의 인스턴스를 만들어 놓고 해당 인스턴스를 다른 모듈들이 공유하며 사용하는 패턴이다. 데이터베이스 연결 모듈에 많이 쓰인다. 싱글톤 패턴의 장단점은 다음과 같다.장점 : 사용하기 쉬움, 인스턴스 생성 시 비용 절감단점 : 의존성이 높아짐, TDD를 ..
인프런 강의를 보고 정리한 내용입니다.멀티 스레드?스레드(Thread) : 애플리케이션 코드가 순차적으로 실행되는 흐름자바 애플리케이션 실행 시, main 스레드가 처음 시작한 스레드는 한 번에 하나의 코드 라인만 수행여러 작업을 동시에 처리해야 할 경우, 추가 스레드 생성 필요예: 웹 서버에서 여러 요청을 동시에 처리하려면 멀티 스레드가 필수요청마다 스레드를 만들면...웹 서버가 요청마다 새 스레드를 만들면 어떨까?장점동시 요청 처리 가능하나의 요청이 지연되더라도 나머지는 정상 동작서버 리소스 허용 범위 내에서 처리량 확장 가능단점스레드 생성 비용 높음 → 요청 폭주 시 응답 지연컨텍스트 스위칭(Context Switching) 비용 발생OS가 CPU를 한 스레드에서 다른 스레드로 전환할 때 발생스레..
캐싱(caching)이란?Redis에 대해 알아보기 전, 먼저 캐시 & 캐싱이 무엇인지 알아보자! 파레토의 법칙에 따라 자주 사용되는 20%의 데이터를 미리 캐싱해둔다면 효과적인 성능 향상을 기대할 수 있다.캐시(Cache) : 원본 저장소보다 데이터를 더 빠르고 효율적으로 가져올 수 있는 임시 데이터 저장소.캐싱(Caching) : 캐시에 접근해 데이터를 빠르게 가져오는 방식.캐시 사용 시 주의사항자주 사용되면서 변경이 적은 데이터에 적합하다.유실되어도 크게 문제가 없는 데이터에 적합하다.DB와 함께 사용 시 데이터 정합성 문제를 고려해야한다.데이터 캐싱 전략단순히 "캐싱"만 한다고 성능이 무조건 보장되는 것은 아니다. 어떻게 캐싱하느냐가 중요하다.대표적인 데이터 캐싱 전략을 알아보자.Cache Asi..
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 클래스로 상수를 관리한다면 기본 생성자..