본문 바로가기
Record/boostcourse

[boostcourse] 1. SQL & JDBC 프로그래밍 생각해보기 #3 ~ #5

by doongjun 2021. 7. 20.

#3 개발환경 설정

 

1) JDK가 운영체제별로 설치파일을 제공하는 이유는 무엇일까?

Java 프로그램은 JVM위에서 돌아가며 이는 운영체제와 상관없이 독립적이다.

하지만 JVM 자체는 운영체제에 종속적이기 때문에 JVM을 포함하는 JDK는 운영체제마다 다르게 설치해주어야 한다.

 

2-1) 자바로 작성된 프로그램을 실행하려면 JRE만 설치하면 된다.
이때는 환경변수를 설정할 필요가 없다.그런데, JDK를 설치할 때는 환경변수를 설정해야 한다.
환경변수를 설정하는 이유가 무엇일까?

환경변수를 통해 shell은 java가 설치된 경로를 찾아 이를 실행한다.

만약 환경변수를 설정하지 않는다면 shell은 java가 어디있는지 알 수 없고,

사용자가 직접 /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home의 경로로 가서

ava를 실행시켜야 한다.

 

2-2) 현재 설치된 JDK보다 높은 버전의 JDK를 설치했다.
이때 수정해야 할 환경변수는 무엇일까?

나머지 환경변수들은 JAVA_HOME을 참조해서 디렉토리를 정하기 때문에 JAVA_HOME을 수정해주면 된다.

 

3-1) 이클립스는 자바로 만들어진 프로그램이다.
이클립스가 실행되기 위해서 설치되어있어야 할 프로그램은 무엇일까?

적어도 JRE가 설치되어있어야 한다.

2021.07.20 - [Java] - [Java] JRE와 JDK

 

[Java] JRE와 JDK

자바 개발 키트(Java Development Kit, JDK), 자바 가상 머신(Java Virtual Machine, JVM), 자바 런타임 환경(Java Runtime Environment, JRE)은 자바 애플리케이션을 개발하고 실행하기 위한 자바 플랫폼의 3대..

doongjun.tistory.com

 

3-2) 이클립스에 모든 플러그인을 제거하면 빈 윈도우만 남는다.
플러그인을 제작할 수 있다면 이 빈 윈도우에 플러그인을 채워 넣을 수 있을 것이다.
이런 방식으로 개발하는 것을 RCP(Rich Client Platform)이라고 말한다.
이클립스 RCP를 이용하여 만들어진 소프트웨어에는 어떤 것들이 있을까?

Object aid(UML을 작성할 때 유용한 플러그인 )

grep console(로그 분석에 유용한 플러그인)

Spring Framework RCPS for Java

NetBeans

 

4-1) 이클립스와 같은 통합개발환경(IDE)가 없다면 어떻게 개발할까?

메모장같은 텍스트 에디터를 사용해서 java파일을 작성하고 cmd를 통해 컴파일하고 실행해야 할 것이다.

메모장
cmd

빌드, 디버깅, 자동완성, 컴파일 에러 검출 등의 기능을 지원해주지 않기 때문에 불편할 것이다.

 

4-2) 이클립스와 비슷한 통합개발환경은 어떤 것이 있을까?

intellij
vscode

 

#4 Maven

 

1) pom.xml파일의 작성방법에 대해 조사해보세요.

https://maven.apache.org/pom.html#POM_Relationships

 

Maven – POM Reference

POM Reference Introduction What is the POM? Quick Overview The Basics Maven Coordinates POM Relationships Dependencies Dependency Version Requirement Specification Version Order Specification Version Order Testing Exclusions Inheritance The Super POM Depen

maven.apache.org

 

2) 이클립스에는 Maven이 내장되어 있습니다.
이번 시간엔 이클립스에 내장된 Maven을 이용해 프로젝트를 생성해보았습니다.
cmd창이나 터미널에서 maven명령을 수행해서 컴파일하고 실행할 수도 있습니다.
이를 위해선 Maven을 별도로 설치를 해야 합니다.
Maven을 설치하고, 콘솔이나 터미널에서 실행할 방법을 찾아보세요.

cmd 창에서 maven을 실행하기 위해서는 maven파일을 설치한 후

시스템변수와 환경변수에 maven변수를 추가해주고 mvn -v 명령어로 확인할 수 있다.

 

#5 JDBC

 

1) java.sql패키지를 보면 대부분이 interface로 되어 있는 것을 알 수 있습니다.
이를 실제로 구현하는 것은 DBMS를 만든 회사입니다.
java.sql외에 JAVA가 인터페이스만 대부분 제공하는 패키지는 또 어떤 것이 있을까요?
참고로 XML문서의 표준은 w3c에서 정합니다.

Java가 인터페이스만 제공하는 패키지로는 자바 ORM의 표준 규격이라고 할 수 있는 JPA가 있고,

이를 구현하는 구현체로는  Hibernate, EclipseLink 등이 존재한다.

 

2-1) JDBC를 이용해서 입력/수정/삭제/조회 메소드를 만들다 보면,
반복적인 코드가 많다는 것을 알 수 있습니다.
반복되는 부분을 별도의 메서드나 클래스로 추출한다면 어떤 부분의 중복을 제거할수 있을까요?

MySQL Driver 클래스를 JVM에 로드하는 부분과

Database와 Java Application 간에 Connection을 맺는 부분의 중복을 제거할 수 있다. 

 

2-2) JDK7부터 추가된 try-with-resource 구문을 이용한다면 예제 코드 중 어떤 부분을 줄일 수 있을까요? 

Connection 객체, PreparedStatement 객체, ResultSet 객체를 사용한 후

자동으로 닫아주기 때문에 해당 객체의 close 부분의 코드를 줄일 수 있습니다.

댓글