개발 지식(66)
-
(Java) JDBC란?
🏴JDBC의 정의 JDBC(Java Database Connectivity)는 뭘까? 이름만 보면 그 쓰임을 대충 짐작할 수 있다. 자바와 데이터에이스 간을 연결하는 중간자 역할을 하는 친구 정도? 로 받아들이면서 시작하자. 자바를 이용한 데이터베이스 접속과 SQL 문장의 실행, 실행 결과로 얻어진 데이터의 핸들링을 제공하는 방법과 절차에 관한 규약 자바 프로그램내에서 SQL문을 실행하기 위한 자바 API SQL과 프로그래밍 언어의 통합 접근 중 한 형태 기존에 DB를 공부했다면 알 것이다. 데이터를 추가하거나 삭제, 수정할때 마다 DB에 쿼리문을 날려서 실행해야한다는 것을. 그런데 웹 어플리케이션의 경우 우리가 직접 모든 요청에 대한 쿼리문을 DB에 날릴 수 없다.(가능하다면 이런게 필요 없겠..
2022.02.20 -
(Database) DML, DDL, DCL
DML(Data Maniupluation Language) DML이라는 이름을 뜯어 보면 그 뜻을 알 수 있다. Data(정보)를 Manipulation(조작) 하는 Language(언어) 이다. 정말 간단하지 않은가! 그럼 어떤게 DML일까? 어떤게 정보를 조작하는 언어일까?(사실 단어에 가깝다) 정보를 추가하는 INSERT 정보를 수정하는 UPDATE 정보를 삭제하는 DELETE 정보를 조회하는 SELECT 등이 있다. DDL(Data Definition Language) DDL도 마찬가지다. 정보를 정의(+조작)하는 언어이다. 정보를 정의한다고? 정의할게 뭐가 있을까? 우리는 DB를 사용할 때 가장 처음으로 스키마를 정의(생성)한다. 그리고 조작으로는 테이블 삭제를 하는 DROP, 테이블을 변경하는..
2022.02.20 -
(Database) 인덱스(index)가 뭐고 왜 쓸까?
1. 들어가며 🙌 수 많은 데이터가 저장되어 있는 데이터베이스를 상상해보자.100개, 1000개, 10000개, 100000개... 그리고 여기에서 한 데이터를 찾는 select연산을 수행한다고 상상해보라.(마치 배열에서 선택정렬을 한다고 생각하는 것과 같다.) 그렇다면 데이터의 수 만큼 탐색 시간이 늘어날 것이다. 그리고 우리는 생각한다.어떻게 하면 탐색 시간을 줄일 수 있을까? 자료구조를 배웠다면 힌트를 얻을 수 있을 것이다. 퀵정렬이 왜 빠른가? 바로 기준점이 있기 때문이다. 그렇다. 지금하려는 인덱스도 데이터베이스의 기준점에 대해서 얘기한다. 2. 인덱스가 뭘까? (왜 써?)인덱스는 데이터베이스 테이블에 대한 검색 성능을 높여주는 자료구조이다. 그렇다. 인덱스를 사용하는 이유는 검색 성능을 높여..
2022.02.20 -
JAVA - JVM에 대해 알아보자 -1
Java에 대해 알고 있는가? 자바는 썬 마이크로시스템즈의 제임스 고슬링과 다른 연구원들이 개발한 객체 지향적 프로그래밍 언어이다.(순수 객체 지향 언어X) 91년 그린 프로젝트라는 이름으로 시작해 95년에 발표된 언어이다. 처음에는 가전제품 내에 탐재해 동작하는 프로그램을 위해 개발된 언어이지만 지금은 웹 어플리케이션 개발에 가장 많이 사용하는 언어 가운데 하나이며(자바 공화국인 한국에서는 더더욱), 코틀린이 등장하기 이전까지 안드로이드 앱도 모두 자바로 만들었다. 썬 마이크로시스템즈가 Oracle에 인수되면서 저작권도 Oracle로 넘어갔다. OpenJDK는 'Open' 답게 GPL2(오픈소스) 이지만, Oracle JDK는 상업라이선스라서 유료화정책의 수순을 밟고있다. 자바 언어는 다음 5가지 핵심..
2022.02.18 -
Java ClassLoader(클래스로더)에 관한 기본적인 이해 -1
Java ClassLoader란? 자바 클래스 로더는 JVM에서 핵심적인 역할을 한다. JVM이 뭔지 상세히 알고 싶다면 아래 글로 오길 바란다. 자바 클래스로더는 JVM으로 동적 로드하는 자바 런타임 환경(JRE)의 일부이다. 이름에서 알 수 있듯이 '클래스'를 '로드'하는 녀석이다. 어떻게? 동적으로! (동적 링크 라이브러리에서 필요시 CPU 호출에 의해 링크, 적재 된다.) 일반적으로 클래스들은 요청 시 한 차례만 로드된다. 자바 런타임 시스템은 클래스로더 덕분에 파일과 파일 시스템에 대해서 알 필요가 없다. (일방적으로 이 역할을 클래스로더에게 위임한다.) JVM이 시작되면 먼저 3개의 클래스 로더들이 사용된다. 부트스트랩 클래스 로더 확장 클래스 로더 어플리케이션 클래스 로더 부트스트랩 클래스 ..
2022.02.18 -
Statement-Level (two-way selection)
이번 글에서는 Statement-level 그러니까 당한 '~문' 에 대해서 알아볼 것이다. 프로그래밍에서 '~문' 하면 떠오르는 것들이 몇 가지 있을 것이다. 대표적으로 for문, while문, if문, switch 문 등이 있다. 그럼 이 친구들을 포함하는 대분류는 무엇일까? 궁금하지 않은가? (나만 궁금해?) 우리는 위와 같은 '~문' 들을 이렇게 분류 할 수 있다. Selection Statements(선택문) Iterative Statements(반복문) Unconditional Branching(무조건 분기) Guarded Commands(보호 명령) 그럼 차근차근 알아가보자. 📕Selection Statements(선택문) 먼저 선택문에 대해서 알아보자. (저는 선택한 적이 없는데요?) 선택..
2021.12.05