[SQL] Advanced SQL
·
Backend/MySQL
우재남님의 "혼자 공부하는 SQL"을 기반으로 학습한 게시물입니다. 📕 목차 1. MySQL의 데이터 형식 2. 두 테이블을 묶는 조인 3. SQL 프로그래밍 1. MySQL의 데이터 형식 📌 데이터 형식 1️⃣ 정수형 데이터 형식 바이트 수 숫자 범위 TINYINT 1 -128 ~ 127 SMALLINT 2 -32,768 ~ 32,767 INT 4 -21^31 ~ 21^31-1 BIGINT 8 UNSIGNED : 정수형 데이터 형식 뒤에 붙일 수 있다. 2️⃣ 문자형 데이터 형식 바이트 수 CHAR(개수) 1~255 VARCHAR(개수) 1~16,383 char는 고정 길이, varchar는 가변 길이 문자형이다. 공간 측면으로는 varchar가 좋지만, 성능 측면으로는 char가 빠르다. 3️⃣ 대량..
[Effective-Java] Chapter9 #62. 다른 타입이 적절하다면 문자열 사용을 피하라
·
Reference/Effective-Java
문자열은 잘못 사용하면 번거롭고, 덜 유연하고, 느리고, 오류 가능성도 크다. 더 적합한 데이터 타입이 있거나 새로 만들 수 있다면, 문자열을 쓰고 싶은 유혹을 뿌리쳐라. 1️⃣ 문자열은 다른 값 타입을 대신하기에 적합하지 않다. 입력받을 데이터가 진짜 문자열일 때만 사용하는 것이 좋다. 받을 데이터가 수치형 → int, float, double, BigInteger 등 적당한 수치 타입으로 변환하라. 받을 데이터가 참/거짓 → boolean 혹은 Enum 기본 타입이든 참조 타입이든 적절한 값 타입이 있다면 그걸 사용하고, 없으면 새로 하나 만들어라. 2️⃣ 문자열은 열거 타입을 대신하기에 적합하지 않다. public static final int APPLE_FUJI = 0; public static ..
[Algorithm Strategies] 3-6. 무식하게 풀기
·
Reference/알고리즘 문제 해결 전략
구종만님의 "프로그래밍 대회에서 배우는 알고리즘 문제 해결 전략"을 기반으로 공부한 내용입니다. 📕 목차 1. 도입 2. 재귀 호출과 완전 탐색 3. 소풍 (문제 ID: PICNIC, 난이도: 하) 4. 게임판 덮기 (문제 ID: BOARDCOVER, 난이도: 하) 5. 최적화 문제(Optimization problem) 6. 시계 맞추기 (문제 ID: CLOCKSYNC, 난이도: 중) 7. 많이 등장하는 완전 탐색 유형 1. 도입 공부를 할 수록 우아한 답안을 만들고 싶은 욕구가 커지고, 그로 인해 쉽고 간단하며 틀릴 가능성이 낮은 답안을 놓치는 경우가 있다. 문제를 가장 처음 봤을 때는 "무식하게 풀 수 있을까?"라고 스스로에게 먼저 물어봐야 한다. 무식하게 푸는(brute-force) 알고리즘을 완..
[Effective-Java] Chapter9 #61. 박싱된 기본 타입보다는 기본 타입을 사용하라
·
Reference/Effective-Java
📌 Java의 데이터 타입 기본 타입 : int, double, boolean 등 참조 타입 : String, Integer, Double, List 등 기본 타입은 모두 대응되는 참조타입이 있으며, 이를 박싱된 기본 타입이라 한다. Auto Boxing/Unboxing 덕에 두 타입을 구분하지 않고 사용할 수는 있지만, 주의해서 선택해야 한다. 📌 기본 타입 vs 박싱된 기본 타입 final int number1 = 1; final int number2 = 1; System.out.println(number1 == number2); // true final Integer number3 = 1; final Integer number4 = 1; System.out.println(number3 == numb..