본문 바로가기

전체 글90

[Java] JDBC 기본 코드의 이해 JDBC를 이용하는 작업의 일반적인 순서는 다음과 같다. DB 연결을 위한 Connection을 가져온다. SQL을 담은 Statement(또는 PreparedStatement)를 만든다. 만들어진 Statement를 실행한다. 조회의 경우 SQL 쿼리의 실행 결과를 ResultSet으로 받아서 정보를 저장할 오브젝트에 옮겨준다. 작업 중에 생성된 Connection, Statement, ResultSet의 리소스를 닫아준다. JDBC API가 만들어내는 예외를 처리하거나 메서드 밖으로 던진다. JDK 1.6부터는 getConnection을 수행할 때 드라이버를 자동으로 로드하기 때문에 Class.forName을 통한 클래스 로드 작업을 하지 않아도 된다. 쿼리를 실행하면 서버 쪽에서는 결과 집합이 생성.. 2021. 2. 21.
[Intellij] 인텔리제이 MySQL - JDBC 연동 방법 (Java) 개발환경 MacOSX Intellij Ultimate 2020.3 ver MySQL 8.0.21 Java 11 프로젝트 생성 및 드라이버 추가 MySQL이 없으신 분들은 다른 블로그 참조해서 설치해주세요. JDBC로 MySQL을 사용하기 위해서는 JDBC 드라이버인 MySQL Connector가 필요합니다. 아래의 링크에서 Platform Independent를 선택해 다운받은 후 압축을 풀어주세요. https://dev.mysql.com/downloads/connector/j/ MySQL :: Download Connector/J MySQL Connector/J 8.0 is highly recommended for use with MySQL Server 8.0, 5.7 and 5.6. Please up.. 2021. 2. 20.
[Java] JDBC란 무엇인가 JDBC(Java Database Connectivity)는 DBMS의 종류와 관계없이 데이터베이스를 조작하기 위한 Java API이다. 간단한 예시를 들어보자. 사용자가 UI를 통해 로그인을 요청한다. 그럼 프로그램은 SQL 문장을 실행해서 해당 정보가 데이터베이스에 들어있는지 확인하고 적절한 응답을 반환한다. 프로그램의 DB로는 Oracle을 사용하고 있다. DB의 종류에 상관없이 DB가 하는 일은 근본적으로 같다. 해당 DB 서버에 연결하고 SQL 문장을 실행하고 결과값을 반영한다 만약 내가 만든 프로그램이 Oracle을 쓰고 있었는데, 이를 MySQL로 바꿔야할 일이 생겼다고 해보자. DB가 하는 일은 같지만 각 제품마다 사용법이 다르기 때문에 이를 사용하기 위한 API도 조금씩 차이가 있을 것이.. 2021. 2. 20.
[Java Study 13주차] I/O 본 포스팅은 백기선님이 진행하시는 자바 스터디 를 진행하며 혼자 공부하고 이해한 내용을 바탕으로 정리한 글입니다. 오류나 지적 사항이 있다면 댓글로 알려주시면 감사하겠습니다. 스트림(Stream) / 버퍼(Buffer) / 채널(Channel) 기반의 I/O 스트림(Stream) I/O란 입력(Input)과 출력(Output)을 말한다. 데이터를 밖으로 발신하는 것이 출력, 밖으로부터 데이터를 수신하는 것이 입력이다. 이때 안과 밖의 기준은 JVM이다. 입출력을 위해 자바는 java.io 패키지를 제공한다. 출처: https://techvidvan.com/tutorials/java-file-handling/ 입출력을 수행하려면 안과 밖으로 데이터가 이동할 통로가 필요한데, 이를 스트림(Stream)이라고.. 2021. 2. 18.
[IntelliJ] 인텔리제이(얼티밋)에서 JSP/Servlet 개발환경 설정하는 법 서블릿 공부를 하려는데 인강에서는 이클립스를 사용해서 개발환경 설정에 애를 먹어 포스팅으로 정리해볼까 합니다. 우선 제 환경은 MacOS, IntelliJ Ultimate 2020.3 버전입니다. 저는 처음부터 얼티밋 버전을 써서 커뮤니티 버전에서도 이게 되는지는 잘 모르겠네요(아마 안될 겁니다). 학교 다니시는 분들은 학교 계정으로 얼티밋 버전을 1년 간 무료로 사용할 수 있으니 참고 부탁드립니다. 우선 새 프로젝트를 만듭니다. 자바 엔터프라이즈를 선택하고 애플리케이션 서버를 선택해줍니다. 저는 톰캣을 미리 깔아놨어서 이게 기본적으로 깔려있는건지 아닌지는 잘 모르겠습니다. 없으면 homebrew로 톰캣 설치하고 진행해주시면 될 것 같습니다. 참고로 homebrew로 설치했을 때 홈 디렉토리 경로는 /u.. 2021. 2. 16.
[정렬] (번역) 정렬 알고리즘에서 안정성(Stability)이란? 이 포스팅은 아래 글을 번역 및 요약한 것입니다. Stability in sorting algorithms - GeeksforGeeks A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions. www.geeksforgeeks.org 정렬 알고리즘에서 말하는 안정성(stability)란 키-값 쌍을 가진 객체들 중 같은 키를 가진 객체들의 순서가 정렬 이후에도 유지되는 것을 말합니다. 위 .. 2021. 2. 15.
중간값을 구하는 안전한 방법 보통 중간값을 다음과 같이 나타내는 경우가 많은데, int mid = (start + end) / 2; 이건 별로 좋은 방법이 아니다. 작은 수에서는 문제가 일어나지 않지만 start + end가 정수 표현 범위(-2,147,483,647 ~ 2,147,483,647)를 넘어서는 경우 오버플로우가 일어나기 때문에 원하는 값을 얻을 수 없다. public class Main { public static void main(String[] args) { int start = 1_500_000_000; int end = 1_600_000_000; int mid = (start + end) / 2; System.out.println("mid = " + mid); } } 실행 결과 mid = -597483648 따.. 2021. 2. 15.
[Java Study 12주차] Annotation 본 포스팅은 백기선님이 진행하시는 자바 스터디 를 진행하며 혼자 공부하고 이해한 내용을 바탕으로 정리한 글입니다. 오류나 지적 사항이 있다면 댓글로 알려주시면 감사하겠습니다. 애노테이션(Annotation)이란? 애노테이션은 소스코드에 메타데이터(혹은 설정정보)를 추가하는 매커니즘이다. 예전에는 소스코드와 그에 대한 문서를 따로 작성하였다. 이런 경우 소스코드를 변경하고나서 문서를 이에 맞춰 변경하지 않으면, 소스코드와 문서가 일치하지 않는 불상사가 생긴다. 그래서 자바 개발자들은 소스코드와 문서를 하나의 파일로 저장하는 방안을 생각해냈다. 그렇게 소스코드의 주석으로부터 HTML 문서를 생성해내는 javadoc.exe가 탄생했다. 문서 뿐만 아니라 설정 파일도 소스코드와 분리해서 관리했었다. 예전에는 설.. 2021. 1. 31.
[백준] 1018번 체스판 다시 칠하기 - java[자바] https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 문제 지민이는 자신의 저택에서 MN개의 단위 정사각형으로 나누어져 있는 M*N 크기의 보드를 찾았다. 어떤 정사각형은 검은색으로 칠해져 있고, 나머지는 흰색으로 칠해져 있다. 지민이는 이 보드를 잘라서 8*8 크기의 체스판으로 만들려고 한다. 체스판은 검은색과 흰색이 번갈아서 칠해져 있어야 한다. 구체적으로, 각 칸이 검은색과 흰색 중 하나로 색칠되어 있고, 변을 공유하는 두 개의 사각형은.. 2021. 1. 26.