2025/05 19

[Java] next() & nextLine()

Scanner에서 입력값을 받을 때 next() (nextInt(), nextDouble()) 와 nextLine()이 있는데 이 둘 메소드는 비슷하면서도 차이점이 있다. next()구분자 : 공백(white space), tab(\t), 개행문자(Enter)(\n)문자열 내에 구분자는 포함되지 않는다.nextLine()구분자 : 개행문자(Enter)(\n) 문자열 내에 개행문자가 포함된다. 개행문자가 포함되는지 않되는지를 잘 구분해야 아래와 같은 오류를 피할 수 있다.import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); ..

Java 2025.05.27

[DB] 카산드라(Cassandra) & Fan-Out-On-Read/Write

높은 쓰기 성능피드 업데이트 시 발생하는 대량의 쓰기 작업을 효율적으로 처리수평적 확장성클러스터에 노드를 추가하여 선형적으로 확장 가능시계열 데이터 모델클러스터링 키를 통한 시간 기준 정렬이 기본 지원되어 최신 피드 조회에 최적화파티션 기반 분산사용자 ID를 파티션 키로 사용하여 사용자별로 데이터 분산 저장튜닝 가능한 일관성상황에 맞게 일관성 수준을 조정할 수 있어 성능과 일관성 간 균형 조정 가능 https://newstellar.tistory.com/30 [데이터베이스/DB] NoSQL이란? (3-1) : 카산드라(Cassandra) 개념 및 장단점[데이터베이스 DB] NoSQL이란? (2-3) : HBase 사용법 (feat. Hive & Impala) 2021.09.02 - [SQL/NoSQL..

데이터베이스 2025.05.26

[DB] Replication (리플리케이션)

Replication 이란데이터를 복제하여 여러 서버에 저장하는 방식이다.→ 안정성, 성능 향상https://mangkyu.tistory.com/97 [Database] 리플리케이션(Replication) vs 클러스터링(Clustering)1. 리플리케이션(Replication)이란? [ 리플리케이션(Replication)이란? ] 리플리케이션이란 여러 개의 DB를 권한에 따라 수직적인 구조(Master-Slave)로 구축하는 방식이다. 리플리케이션에서 Master Node는 쓰mangkyu.tistory.com https://velog.io/@zpswl45/DB-Replication-%EA%B0%9C%EB%85%90-%EC%A0%95%EB%A6%AC

데이터베이스 2025.05.26

[Java] HashMap의 key에 클래스를 사용하면?

equals와 hashCode는 같의 재정의 하자※hash 값을 사용하는 Collection(HashSet, HashMap, HashTable)은 hashCode 메서드가 작동하기 때문!https://tecoble.techcourse.co.kr/post/2020-07-29-equals-and-hashCode/ equals와 hashCode는 왜 같이 재정의해야 할까?equals와 hashCode는 같이 재정의하라는 말을 다들 한 번쯤 들어봤을 것이다. 대부분의 IDE Generate 기능에서도 equals와 hashCode를 같이 재정의해주며 lombok에서도 EqualsAndHashCode…tecoble.techcourse.co.kr https://velog.io/@ghkvud2/equals%EC%9..

Java 2025.05.26

[Java] Optional 클래스

Optional 클래스란?null이 올 수 있는 값을 감싸는 컨테이너 클래스 (Wrapper class)Java 8부터 도입.NullPointerException을 방지하고, 명시적으로 "값이 있을 수도, 없을 수도 있음"을 표현. Optional name = Optional.of("홍길동");Optional empty = Optional.empty();Optional.of(value) : 값이 무조건 존재함을 보장 (null 넣으면 예외)Optional.ofNullable(value) : 값이 있을 수도 없을 수도 있음Optional.empty() : 빈 Optional 객체 메서드설명isPresent()값이 존재하는지 여부(true/false)get()값을 꺼냄(값 없으면 예외 발생)orElse(de..

Java 2025.05.21

[IntelliJ] 단축키

환경설정에서 shortcut 등록 가능! + 해당 부분의 속성창 + constructor, getter, setter 등 자동 생성 + + b해당 인터페이스를 사용하고 있는 클래스 목록 + + n변수 정리 (코드 리팩토링) + + m해당 코드 메소드로 생성 + + v리턴값 자동 완성 + + → / ←앞뒤로 이동 + b해당 메소드, 클래스를 사용하고 있는 곳으로 이동 및 목록 생성 + ehistory (코드 왔다갔다 할 때 유용) + o메소드 등록 + '/'// 주석 처리 + + '/'/**/ 주석 처리 + 현재 클래스의 메소드 목록 보기 + + 코드 한 줄 자동완성 + + 리컴파일 (보통 devtools와 함께 사용) + + 현재 코드 실행 + + t해당 클래스의 test 생성 + ..

Java 2025.05.11

[PostgreSQL] GENERATED / Sequence / Serial

MySQL에서의 Auot Increment는 PostgreSQL에서 다음과 같은 3가지 방법을 사용해야 한다. 1. GNERATED { ALWAYS | BY DEFAULT } AS IDENTITY2. Sequence3. Serial (ANSI SQL 아님) https://lovethefeel.tistory.com/57 [PostgreSQL] 자동증가 방법Postgresql 자동 증가 Sequence Serial GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY Sequence 생성 CREATE SEQUENCE tn_user_id_seq; 테이블 생성 CREATE TABLE tn_user_seq ( id BIGINT NOT NULL DEFAULT NEXTVAL('tn_use..

SQL 2025.05.08

[Git] 커밋 접두어 (Conventional Commits)

Conventional Commits 라는 커밋 메시지 컨벤션에서 사용하는 접두어에 대하 알아보자( → 팀 협업, 자동화 배포, changelog 생성 등에 매우 유용) Git 로그가 한눈에 정리됨자동 changelog 생성 도구 사용 가능 (예: standard-version, semantic-release)feat와 fix는 자동 버전 관리(semver)와 연동 가능 타입의미예시feat새로운 기능 추가 (feature)게시글 생성 API 추가fix버그 수정로그인 시 JWT 토큰 누락 버그 수정revert이전 커밋을 되돌림feat: 게시글 생성 API 추가 (#1234)docs문서 수정 (코드 변경 없음)README에 실행 방법 추가style코드 포맷팅, 세미콜론 등 (기능 변경 없음)불필요한 공백 ..

Git 2025.05.05