데이터베이스 Key의 개념과 종류
·
CS 스터디/CS - DB
데이터베이스에서 Key의 개념Key(키)는 데이터베이스에서 각 행(row)을 고유하게 식별하거나, 테이블 간의 관계를 정의하기 위해 사용하는 컬럼(속성)입니다.간단히 말해, 데이터를 구분하고, 조회하며, 서로 연결하는 기준이 되는 요소입니다. Key의 역할데이터베이스의 키는 테이블에서 각 데이터를 고유하게 식별하고, 다른 테이블과의 관계를 연결하며, 데이터의 무결성을 보장하는 역할을 합니다. Key의 종류💡 이 글에서는 SQL 쿼리 예제와 함께 Key의 개념을 설명드리며, 예제는 MySQL 문법을 기준으로 작성되었습니다.1. 기본키 (Primary Key)테이블에서 각 행을 유일하게 식별하는 키기본키 특징NULL 값을 가질 수 없다.중복된 값을 가질 수 없다.하나의 테이블의 기본 키는 반드시 하나만 존..
백준 12015 가장 긴 증가하는 부분 수열 2 - JAVA
·
알고리즘/백준
12015 문제 링크https://www.acmicpc.net/problem/12015 문제 설명 입출력 코드1234567891011121314151617181920212223242526272829303132333435363738394041424344import java.io.*;import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputS..
SQL의 실행과정
·
CS 스터디/CS - DB
SQL이란먼저 SQL이란, Structured Query Language의 줄임말로 관계형 데이터베이스(RDBMS)에서 데이터를 CRUD할 수 있게 해주는 표준 프로그래밍 언어입니다. 쉽게 말해, 데이터베이스에서 데이터를 다루기 위한 언어라고 할 수 있습니다. SQL의 실행과정은 크게 파싱 → 최적화 → 로우소스 생성 → 실행 순입니다. 순서대로 살펴보겠습니다. 1. 파싱 (Parsing)파싱은 SQL의 가장 첫 번째 실행단계로, 사용자가 입력한 SQL문을 분석하여 구문 및 의미를 확인하는 단계입니다.파싱의 단계1. 문법 체크 (Syntax Check)쿼리문 즉, 실행한 SQL 명령에 대해 문법의 오류나 오타가 있는지 확인하는 단계문법적으로 올바르지 않은 경우 오류를 반환합니다.2. 의미 & 권한 체크 ..
데이터베이스
·
CS 스터디/CS - DB
데이터베이스란데이터베이스는 컴퓨터에 저장되어 실시간으로 접근할 수 있는 데이터의 모임으로, 중복을 최소화하여 통합 관리되는 정보 저장소입니다. 또한, 데이터베이스는 조직의 업무 수행에 필수적인 데이터를 저장하고, 여러 사용자가 공동으로 접근하고 활용할 수 있도록 관리됩니다.특히, 웹 어플리케이션이 동적인 데이터를 관리하려면 데이터를 저장하고 가져오는 기능이 필요합니다. 이때, 사용되는 것이 데이터베이스이고, 웹 개발에 있어 필수적인 요소라고 볼 수 있습니다. 먼저, 앞선 설명을 보면 스프레드시트(엑셀)와 데이터베이스의 차이점이 궁금해 질 수도 있을것 같습니다. 해당 궁금증을 오라클 홈페이지에서도, 설명해주는데 해당 링크와 함께 간단한 차이점을 요약해보겠습니다. 데이터베이스와 스프레드시트(엑셀)의 차이점1..
백준 14500 테트로미노 - JAVA
·
알고리즘/백준
14500 문제 링크https://www.acmicpc.net/problem/14500 문제 설명 입출력 코드12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758import java.io.*;import java.util.*; public class Main { private static int[] dx = {0, 0, -1, 1}; private static int[] dy = {-1, 1, 0, 0}; private static int[][] arr; private static boolean[][] visit; private static..
백준 10468 숫자뽑기게임 - JAVA
·
알고리즘/백준
10468 문제 링크https://www.acmicpc.net/problem/10468 문제 설명 입출력 코드123456789101112131415161718192021222324252627282930313233343536373839import java.io.*;import java.util.*; public class Main { static int[] arr; static int[][] dp; static int N; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); ..
Java의 원시 타입과 참조 타입
·
CS 스터디/CS - JAVA
자바에서는 기본적으로 원시 타입(Primitive Type)과 참조 타입(Reference Type) 두 가지 형태의 타입을 사용합니다. 두 타입의 어떤 차이점이 존재하는지 살펴보겠습니다. 이번 글에서는 본격적인 비교에 앞서, 먼저 원시 타입과 참조 타입이 무엇인지 간단히 알아보고,이후에 4가지(성능, 메모리, null 처리, 제네릭 사용)관점에서 그 차이를 살펴보겠습니다. 원시 타입(Primitive Type) 이란?원시 타입은 정수, 실수, 문자, 논리 리터럴 등 실제 데이터 값을 저장하는 타입원시 타입 특징변수에 값 자체가 저장됨스택 메모리에 저장됨크기가 고정되어 있어 메모리 사용이 효율적값만 저장하므로 속도가 빠름null값을 가질 수 없음객체가 아니므로 메서드 정의가 불가능원시 타입의 대표적인 종..
객체 지향 설계 5대 원칙 (SOLID)
·
CS 스터디/CS - JAVA
객체지향 프로그래밍을 배울 땐 상속이나 캡슐화, 다형성 같은 개념만으로도 충분해 보입니다. 하지만 기능이 늘어나고 유지보수의 영역이 넓어지면 점점 코드가 복잡해지고 유지보수가 어려워질 수 밖에 없습니다. 이러한 문제들을 줄이고, 설계의 중요한 기준점이 되는 것이 바로 SOLID원칙입니다.이 원칙은 로버트 C. 마틴(Robert C. Martin)이 제안한 것으로, 객체지향 설계의 핵심 철학이라 할 수 있습니다. SOLID를 잘 지키면 코드가 유연해지고 변경에도 강해져서, 유지보수가 쉬운 구조를 만들 수 있습니다. 규모가 커질수록 이런 설계 원칙의 중요성은 더 커질 수 밖에 없습니다. SOLID란?SOLID는 다섯 가지 설계 원칙의 앞글자를 따서 만든 약어입니다. S: SRP - 단일 책임 원칙 (Sing..
프로그래머스 [ 게임 맵 최단거리 / Lv3 ] - JAVA
·
알고리즘/프로그래머스
문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/1844 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 설명ROR 게임은 두 팀으로 나누어서 진행하며, 상대 팀 진영을 먼저 파괴하면 이기는 게임입니다. 따라서, 각 팀은 상대 팀 진영에 최대한 빨리 도착하는 것이 유리합니다. 지금부터 당신은 한 팀의 팀원이 되어 게임을 진행하려고 합니다. 다음은 5 x 5 크기의 맵에, 당신의 캐릭터가 (행: 1, 열: 1) 위치에 있고, 상대 팀 진영은 (행: 5, 열: 5) 위치에 있는 경우의 예시입니다.위 그림에서 검은색 부분은 벽으로 막혀있어 ..
프로그래머스 [ 타겟 넘버 / Lv2 ] - JAVA
·
알고리즘/프로그래머스
문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 설명문제 설명n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다.-1+1+1+1+1 = 3+1-1+1+1+1 = 3+1+1-1+1+1 = 3+1+1+1-1+1 = 3+1+1+1+1-1 = 3사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개..