전체 글 33

MariaDB 설치 및 사용자 생성(라즈베리파이 Linux)

환경 : Raspbian GNU/Linux 12 (bookworm) 1. 설치전 updatesudo apt-get update 2. 설치 가능한 버전 확인sudo apt-cache search mariadb 3. Mariadb 설치(버전생략하면 최신 버전으로)sudo apt-get install mariadb-server (+ root 패스워드 변경하려면)sudo passwd root 4. 패스워드(-p)로 db 접속sudo mysql -u root -p5. db 보기show databases; 데이터베이스 생성 / 사용자 생성 및 해당 db 권한 부여하기1. `root` 계정으로 접속 후 데이터베이스 생성CREATE DATABASE db_name CHARACTER SET utf8mb4 COLLATE ..

개발/Database 2025.07.24

[Tomcat] jdbc 드라이버 로딩 및 커넥션 초기화

웹 애플리케이션에서 데이터베이스를 사용하려면 JDBC 드라이버를 로딩해야 하는데웹서버가 시작할 때 로드해서 사용하려면 HttpServlet의 init()으로 로드하는 방식과 WebListener를 사용하는 방식두가지가 있는데 한번 알아보자 1. 서블릿 init() 방식서블릿의 `init()` 매서드는 서블릿이 처음 로드될 때 한 번 호출되는데 이를 활용해 드라이버를 로딩하거나 커넥션을 초기화 할 수 있다.package jdbc;import jakarta.servlet.ServletConfig;import jakarta.servlet.ServletException;import jakarta.servlet.http.HttpServlet;public class OracleDriverLoader extends ..

개발/Java 2025.07.14

TIL250710: Servlet

jakarta.servlet.http.HttpServletServletServlet : HTTP 요청을 처리하는 자바 클래스 실제 소켓 리슨(ServerSocket)은 서블릿 컨테이너(Tomcat)이 담당한다.그러니까 쉽게 생각해보면 웹서버에서 라우팅에 연결된 핸들러와 비슷하다고 볼 수 있다.다만 Tomcat에 의해 init() service() destroy()와 같은 lifecycle이 자동으로 관리되고 상태 보유 등 다양한 기능을 지원한다. import jakarta.servlet.ServletConfig;import jakarta.servlet.ServletException;import jakarta.servlet.annotation.WebServlet;import jakarta.servlet.h..

개발/TIL 2025.07.10

Oracle DB(02) - 오라클 설치 및 기본 사용법

오라클XE 설치https://www.oracle.com/kr/database/technologies/xe-downloads.html 사용자 계정 생성멀티테넌트 구조: 사용자 이름 앞에 c##를 붙여 권한자랑 세입자 관리자 분리, 권한자(c##)는 권한이 높다. 유저조회SELECT * FROM ALL_USERS; 유저생성CREATE USER c##username IDENTIFIED BY name DEFAULT TABLESPACE users TEMPORARYTABLESPACE temp PROFILE DEFAULT; 더보기 CREATE USER c##username새로운 사용자(user) 계정을 생성하라는 명령어입니다.c## 접두사는 CDB(Common Database) 환경에서 “공통 사용자(common u..

개발/Database 2025.07.01

Oracle DB(01) - 데이터베이스

데이터베이스와 데이터베이스 시스템data: datum의 복수형, 정량화 데이터베이스 시스템 구성 SQL - 데이터베이스 언어 데이터 정의어(DDL, Data Definition Language)데이터 조작어(DML, Data Mainpulation Language)데이터 제어어(DCL, Data Control Languate)데이터베이스 사용자DBA(Database Administrator): 최고권한 DB 설계자SQL 사용자응용프래그래머일반사용자3단계 데이터베이스 구조외부 스키마(view), 개념 스키마(coneptual schema), 내부 스키마(internal schema) 키 : 특정 튜플을 식별할 때 사용하는 속성 혹은 속성의 집합기본키(후보키중 선정된 키)+대체키(기본키로 선정되지않은 ..

개발/Database 2025.06.30

TIL250630: 메모리 관점에서 본 Java

java 복습 x.java -(컴파일)-> x.class(바이트코드) -(로더)->( Mainthread )[JVM] 실행 자바에서 O.O.P란?Object-Oriented Programming (객체지향프로그래밍): 객체(포인터)를 사용해서 프로그래밍한다.디자인패턴객체로 보겠다O.O.P + Functional programming, 자바는 클래스기반으로 순수함수가 없다.자바에서 매소드는 따로 매소드영역에 생성되기 때문에 호출되는 클래스를 알아야한다.그래서 this가 필요한데 자바는 매소드에 0번째 매개변수로 this를 받아온다.(직접 사용자가 선언하지 않고 컴파일 단계에서 자동으로 붙여준다)

개발/TIL 2025.06.30

TIL250624: Java는 순수함수가 없다?

이것이 자바다(696~) 16.1 람다식이란?람다식이란 함수를 하나의 식으로 나타낸 익명함수이다.java에서 람다식을 사용하려면 js와 달리 인터페이스가 필요하다.interface MyFunction { int calc(int x, int y); // 추상매서드}public class LambdaTest { public static void main(String[] args) { MyFunction add = (x, y) -> {return x + y;}; MyFunction minus = (x, y) -> x - y; // return 생략 System.out.println(add.calc(10, 20)); System...

개발/TIL 2025.06.24

TIL250620

이것이 자바다(p.350~)08. 인터페이스 인터페이스는 또 다른 형태의 클래스이며 참조 변수형으로 사용된다. 인터페이스의 추상매서드를 재정의한 구현 클래스로 객체(구현객체)를 만든다. 구현객체는 인터페이스 타입으로 참조 될 수 있다. 추상 클래스와 인터페이스의 차이항목 인터페이스 참조구현 클래스 참조참조 타입인터페이스구현 클래스접근 가능한 메서드인터페이스에 정의된 것만클래스의 모든 public 메서드유연성높음 (다형성 활용 가능)낮음확장성인터페이스를 구현한 다른 객체로 쉽게 교체 가능해당 클래스에 종속됨상황클래스가 어떤 기능을 반드시 수행해야 함을 보장하고 싶다여러 클래스에 공통 속성과 동작을 물려주고 싶다 ++다운캐스팅 Base obj = new Derived(); /* Derive..

개발/TIL 2025.06.20

TIL250619: Java 클래스 상속(js와 비교)

이것이 자바다(p.244~) JVM 메모리는 크게 메소드영역(메소드, 상수, 정적필드, 생성자 코드) 힙영역(객체), 스택영역(지역변수, 매개변수...)으로 구분되고메소드는 메소드영역에 저장되어 인스턴스 객체별로 할당하지 않고 포인터로 공유되어 사용된다. 6.9 인스턴스 멤버인스턴스(instance) 멤버: 클래스로 부터 생성된 객체(인스턴스)에 속하는 변수와 메서드 6.10 정적 멤버정적(static) 멤버: 클래스에 속하는 변수와 메서드(객체 없이 사용 가능) /* static 멤버(멤버변수, 멤버함수) 모든 객체가 용유한다. 클래스 멤버이다. 선언과 동시에 초기화를 해야한다. 공통된 멤버인 경우에 사용한다.*/class Counter { static int staticCou..

개발/TIL 2025.06.20