전체 글 55

[Java] - JDBC를 사용하여 데이터베이스 연결 (오라클db)

JDBC ( Java Database Connectivity ) JDBC는 자바에서 데이터베이스에 접속할수 있도록 도와주는 API 입니다. 자바에서 데이터베이스에 접속하기 위해선 컴퓨터에 데이터를 관리하는 소프트웨어인 DBMS(Database Management System)이 설치되어 있어야 합니다. 예를 들면, mariadb, 오라클db, mysql 같은 것들이 DBMS 프로그램들입니다. 참고로 제 컴퓨터에는 오라클db가 설치되어 있습니다. 만약 오라클db가 설치되어 있지 않다면, 아래 링크에서 다운 받으시면 됩니다. * 다운 받기 위해서는 오라클에 회원가입이 필요합니다. https://www.oracle.com/database/technologies/xe-downloads.html ㅇ JDBC (..

[프로젝트] - 멀티 스레드를 활용한 채팅 프로그램 (Java)

오늘은 자바를 공부하면서 소규모 프로젝트로 멀티 스레드를 활용한 다중 클라이언트 채팅 프로그램을 만들어 보았습니다. 채팅 프로그램의 작업 흐름 서버 쪽에서 SeverSocket을 생성 클라이언트 쪽에서 해당 IP에 Socket을 생성 서버쪽에서 접속하려는 클라이언트를 accept()하고 리스트에 클라이언트 저장 클라이언트가 작업 요청 (채팅 프로그램이니 작업은 메세지 전송) 서버 쪽 스레드에서 요청을 처리 응답을 클라이언트에게 반환 받은 메세지를 리스트에 있는 모든 클라이언트들에게 전달 이유는 단체 채팅방에 있는 모든 유저는 채팅을 보낸 유저의 채팅을 볼수 있어야 하기 때문 package step6; import java.io.BufferedReader; import java.io.IOException;..

Toy Project 2021.04.04

[SQL] - Grant, Revoke (Data Control Language/ DCL)

SQL SQL은 Structured Query Language의 약자로 데이터 베이스에 있는 정보 검색을 용이하게 하는 프로그래밍 언어 입니다. SQL은 크게 3종류로 나뉘어 집니다. Data Definition Language (DDL) Data Manipulation Language (DML) Data Control Language (DCL) 오늘은 목록에서 첫번째인 데이터 정의 언어 (DCL)에 대해서 알아보겠습니다. 데이터 제어 언어 (Data Control Language) 데이터 제어 언어는 데이터베이스에서 데이터에 대한 접근을 제어하는 언어 입니다. GRANT - 유저에게 데이터베이스에 대한 권한을 부여 GRANT role_name TO user WITH ADMIN OPTION; GRANT ..

Database/SQL 2021.03.31

[SQL] - Insert, Delete, Update, Select (Data Manipulation Language/DML)

SQL SQL은 Structured Query Language의 약자로 데이터 베이스에 있는 정보 검색을 용이하게 하는 프로그래밍 언어 입니다. SQL은 크게 3종류로 나뉘어 집니다. Data Definition Language (DDL) Data Manipulation Language (DML) Data Control Language (DCL) 오늘은 SQL에서 데이터를 조작하는 언어인 Data Manipulation Language (DML)에 대해서 알아보겠습니다. 데이터 조작어 (Data Manipulation Language) 데이터 조작어는 데이터베이스 안에 있는 테이블의 데이터를 검색, 등록, 삭제, 갱신 하는데에 사용 됩니다. 1. INSERT INSERT는 테이블 안에 새로운 데이터를 삽..

Database/SQL 2021.03.29

[SQL] - Create, Drop, Alter (Data Definition Language/DDL)

SQL SQL은 Structured Query Language의 약자로 데이터 베이스에 있는 정보 검색을 용이하게 하는 프로그래밍 언어 입니다. SQL은 크게 3종류로 나뉘어 집니다. Data Definition Language (DDL) Data Manipulation Language (DML) Data Control Language (DCL) 오늘은 목록에서 첫번째인 데이터 정의 언어 (DDL)에 대해서 알아보겠습니다. 데이터 정의 언어 (DDL) 데이터 정의 언어 (DDL) 는 말 그대로 SQL에서 데이터를 정의하는데에 사용되는 언어들입니다. DDL에는 CREATE, DROP, ALTER가 있는데요. CREATE는 데이터 테이블을 생성하는데에 사용 됩니다. 그럼 CREATE를 이용해서 고객들의 id..

Database/SQL 2021.03.25

[자바/Java] - 문자열 (String)

문자열 (String) 자바에서 문자열을 나타낼때 사용하는 객체는 String 입니다. String을 사용하여 문자열을 사용하고 싶다면, String str = "Hello World"; 이렇게 사용하시면 됩니다. String 객체를 사용하여 "Hello World"라는 문자열을 str에 할당한 코드 입니다. Method String에서 자주 사용되는 함수들을 알아보도록 하겠습니다. startsWith()는 문자열이 지정한 문자로 시작하는지 확인하는 함수 입니다. 아래의 경우 만약 str이 "M"으로 시작한다면 true를 반환하고 그렇지 않다면 false를 반환 합니다. String str = "Melon"; boolean startswith = str.startsWith("M"); System.out...

[자바/Java] 오버라이딩 (Overriding)

오늘은 자바의 오버라이딩에 대해서 공부 해봤습니다. 오버라이딩이란? 조상 클래스로부터 상속 받은 메소드의 내용을 자식 클래스에서 변경하는걸 뜻 합니다. 오버라이딩의 조건 오버라이딩 하는 메소드의 이름이 같아야 한다. 메소드의 매개변수(parameter)가 같아야 한다. 메소드의 리턴 타입도 같아야 한다. 그럼 어떤 경우에 오버라이딩이 사용 되는지 알아 보도록 하겠습니다. Point라는 클래스인데요. 일직선에서 한 점을 뜻하는 클래스 입니다. 여기서 getLocation()이라는 메소드는 일직선에서 점의 위치를 x값으로 나타내고 있는데요. 이 메소드를 오버라이딩 해보겠습니다. 위의 Point 클래스를 상속 받은 Point2D라는 자식 클래스 입니다. Point 클래스가 일직선에서 위치를 나타내는 1차원 좌..

[자바/Java] 오버로딩 (Overloading)

오늘은 오버로딩에 대해 공부해봤습니다. 오버로딩(Overloading)이란? - 보통 하나의 메소드 이름에 하나의 기능만을 구현해야 하는데, 하나의 메소드 이름으로 여러 기능을 구현하고 싶을때 사용합니다. 오버로딩의 조건 메소드 이름이 같아야 한다. 매개변수(parameter)의 개수 또는 타입이 달라야 한다. 오버로딩의 예시 Math 클래스 안에 add라는 메소드를 만들었습니다. 메소드 이름은 같지만 parameter의 개수를 다르게 해서 이 add 메소드는 2개의 숫자를 더하는데에 사용할수도 있고 3개의 숫자를 더하는데에 사용할수도 있게 되었습니다. 여기 메소드 오버로딩이 잘 동작 되는지 확인하기 위해 테스트 코드를 준비 했습니다. 처음 add는 1 과 2 를 더한 값을 리턴하며 두번째 add는 1,..

[Java] switch 문 (case, default )

오늘은 자바 switch 문에 대해서 알아 보겠습니다. 자바의 switch문은 여러 가지 경우의 수 중에 한개를 선택해야 될때 유용하게 사용 됩니다. switch 문에 들어간 값은 각각의 case에 할당된 값들과 비교 되어진다. 일치하는 값을 찾으면 해당 case를 실행한다. break와 default는 필수가 아닌 선택이다. 예를 들면, 달력에서 입력된 월의 마지막 날이 몇일인지 구하는 함수를 작성해야 하는 경우를 보겠습니다. 1월, 3월, 5월, 7월, 8월, 10월, 12일은 마지막 날이 31일 입니다. 4월, 6월, 9월, 11월은 마지막 날이 30일 입니다. 2월은 마지막 날이 28일 입니다. 코드로 구현한다면, public class DateService { public void printLa..

(파이썬) [알고리즘 문제 풀이] - 섬 연결하기 (프로그래머스

오늘은 프로그래머스에서 섬 연결하기를 풀어보았습니다. 설명 n개의 섬 사이에 다리를 건설하는 비용(costs)이 주어질 때, 최소의 비용으로 모든 섬이 서로 통행 가능하도록 만들 때 필요한 최소 비용을 return 하도록 solution을 완성하세요. 다리를 여러 번 건너더라도, 도달할 수만 있으면 통행 가능하다고 봅니다. 예를 들어 A 섬과 B 섬 사이에 다리가 있고, B 섬과 C 섬 사이에 다리가 있으면 A 섬과 C 섬은 서로 통행 가능합니다. 제한사항 섬의 개수 n은 1 이상 100 이하입니다. costs의 길이는 ((n-1) * n) / 2이하입니다. 임의의 i에 대해, costs[i][0] 와 costs[i] [1]에는 다리가 연결되는 두 섬의 번호가 들어있고, costs[i] [2]에는 이 두..