ActivePerl 다운로드

https://www.activestate.com/activeperl 에서 다운로드한다.


Download Now를 클릭한다


Download ActivePerl 5.24.2 for Windows (64-bit, x64)를 클릭하여 다운로드한다.


Install 순서

Next 버튼을 클릭한다.


I accept the terms in the License Agreement에 체크 표시를 하고 Next 버튼을 클릭한다.


Location 위치에 ActivePerl 폴더가 만들어진다.

Next 버튼을 클릭한다.


Add Perl to the PATH environment variable은 환경 변수에 Perl의 경로를 추가한다.

Create Perl file extension association은 Perl 파일(.pl)의 연결을 설정한다.

Next 버튼을 클릭한다.


Install 버튼을 클릭하면 설치가 시작된다.

Finish 버튼을 클릭하면 ActivePerl 설치가 완료된다.

'개발자 > Perl' 카테고리의 다른 글

Perl이 보이는 그림책 - Perl 인터프리터 설치하기  (0) 2018.10.09

SQL 매퍼 프레임워크 구현과 관련해서 Application 클래스, Executor 클래스, Shop 클래스, SqlMapper 클래스를 작성한다. 


Application 클래스는 JDBC 인터페이스를 사용해서 데이터를 조회한다.

Executor 클래스는 Application 객체를 생성한 다음 view( ) 메소드를 호출한다.

이때 Shop 클래스를 리절트 객체로 사용한다.

SqlMapper 클래스는 Application 클래스의 부모 클래스로 개선이 필요한 소스 코드를 추출해서 메소드로 작성한다.


먼저 Shop 클래스를 작성한 다음 Application 클래스Executor 클래스를 순차적으로 작성한다. 

SqlMapper 클래스는 기능 구현에 따라 단계적으로 작성한다.


1. Shop 클래스 생성 경로 : /chapter01/src/org/mybatis/domain/Shop.java


shopNo;

shopName;

shopLocation;

shopStatus;

2. SHOP 테이블에 정의한 컬럼을 기준으로 프로퍼티를 선언한다. 프로퍼티명은 컬럼명을 낙타 표기 형식에 맞추어 변환한 문자열을 사용한다. 


int shopNo;

String shopName;

String shopLocation;

String shopStatus;

3. 프로퍼티를 선언한 다음 컬럼 타입에 적합한 자바 타입을 프로퍼티 타입으로 선언한다. 컬럼 타입이 숫자 타입인 경우 int 타입 또는 Integer 타입을 프로퍼티 타입으로 선언하고, 문자 타입인 경우 String 타입을 프로퍼티 타입으로 선언한다.


/* 접근 제한자 */

private int shopNo;

private String shopName;

private String shopLocation;

private String shopStatus;


/* 셋터 메소드 */

public void setShopNo(int shopNo){

this.shopNo = shopNo;

}


/* 겟터 메소드 */

public int getShopNo( ){

return this.shopNo;

}

4. 선언한 프로퍼티 값을 직접 변경하지 못하도록 접근 제한자를 지정한 다음 셋터 메소드와 겟터 메소드를 작성한다.


private int shopNo;

private String shopName;

private String shopLocation;

private String shopStatus;


/* 기본 생성자 */

public Shop( ) {


}


/* 생성자 */

public Shop(int shopNo, String shopName, String shopLocation, String shopStatus){

this.shopNo = shopNo;

this.shopName = shopName;

this.shopLocation = shopLocation;

this.shopStatus = shopStatus;

}

5. 두 개의 생성자를 작성한다. 하나는 기본 생성자이고, 다른 하나는 모든 프로퍼티를 인자로 지정한 생상자다.

* 생성자는 클래스명과 이름이 동일하고, 반환 타입이 생략된 메소드를 말한다. 특히 생성자 가운데 인자가 없는 생성자를 기본 생성자라고 한다.


import java.io.Serializable;


public class Shop implements Serializable {


}

6. Serializable 인터페이스를 지정한다.


Application 클래스를 작성한다. JDBC 인터페이스 호출 순서를 따라 작성한 Application 클래스는 데이터베이스로부터 조건에 맞는 데이터를 한 건 조회한다. Application 클래스는 단계적인 리팩토링 작업을 통해서 점진적으로 작성한다. Application 클래스를 작성할 때 Shop 클래스를 리절트 객체로 사용한다.


7. Application 클래스 생성 경로 : /chapter01/src/step0/Application.java


import java.sql.SQLException;

import java.util.List;


public class Application {

public void view(List<Object> parameters) throws SQLException {

try {

// JDBC 드라이버 로딩

Class.forName("oracle.jdbc.driver.OracleDriver");

} catch (ClassNotFoundException e) {

e.printStackTrace( );

}

}

}

8. view( ) 메소드를 정의한다. view( ) 메소드에 Class 클래스의 forName( ) 메소드를 사용해서 JDBC 드라이버를 로딩하는 소스 코드를 작성한다. forName( ) 메소드를 호출할 때 패키지 경로를 포함한 (오라클 데이터베이스의) JDBC 드라이버 클래스를 인자로 전달한다. 빌드 경로에서 JDBC 드라이버 클래스를 찾지 못하면 ClassNotFoundException 예외가 발생한다. 이런 경우에 try ~ catch 문을 사용해서 예외를 처리한다. 


import java.sql.Connection;

import java.sql.DriverManager;


public class Application {

public void view(List<Object> parameters) throws SQLException {

Connection connection = null;


try {

// JDBC 드라이버 로딩

Class.forName("oracle.jdbc.driver.OracleDriver");


// 데이터베이스 연결

connection = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE", "mybatis", "mybatis");

} catch (ClassNotFoundException e) {

throw new RuntimeException(e);

}

}

}

9. JDBC 드라이버를 로딩한 다음 DriverManager 클래스의 getConnection( ) 메소드를 호출하면, Connection 객체를 반환받을 수 있다. getConnection( ) 메소드를 호출할 때 데이터베이스 연결 URL, 계정, 비밀번호를 인자로 지정한다.


import java.sql.PreparedStatement;


public class Application {

public void view(List<Object> parameters) throws SQLException {

Connection connection = null;

PreparedStatement preparedStatement = null;


try {

...


// 데이터베이스 연결

connection = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE", "mybatis", "mybatis");


// 쿼리문 처리 객체 생성

preparedStatement = connection.prepareStatement(

"SELECT SHOP_NO, SHOP_NAME, SHOP_LOCATION, SHOP_STATUS "

 + "FROM SHOP WHERE SHOP_NO = ? AND SHOP_STATUS = ?");


// 파라미터 바인딩

preparedStatement.setInt(1, (Integer) parameters.get(0));

preparedStatement.setString(2, String.valueOf(parameters.get(1));

} catch (ClassNotFoundException e) {

throw new RuntimeException(e);

}

}

}

10. 반환된 Connection 객체의 preparedStatement( ) 메소드를 호출하면, PreparedStatement 객체를 반환받을 수 있다. PreparedStatement에서 제공하는 다양한 셋터 메소드를 사용해서 매개 변수를 지정한 쿼리문에 파라미터를 바인딩할 수 있다. 매개 변수의 컬럼 타입이 숫자 타입인 경우 setInt( ) 메소드를 사용하고, 문자 타입인 경우 setString( ) 메소드를 사용한다. 셋터 메소드의 인자로 매개 변수 순번과 파라미터를 전달한다.


import java.sql.ResultSet;


public class Application {

public void view(List<Object> parameters) throws SQLException {

...

PreparedStatement preparedStatement = null;

ResultSet resultSet = null;


try {

...


// 파라미터 바인딩

preparedStatement.setInt(1, (Integer) parameters.get(0));

preparedStatement.setString(2, String.valueOf(parameters.get(1));


// 쿼리문 실행 및 결과 반환

resultSet = preparedStatement.executeQuery( );

} catch (ClassNotFoundException e) {

throw new RuntimeException(e);

}

}

}

11. PreparedStatement 객체의 executeQuery( ) 메소드를 호출하면, 조회 쿼리문을 실행한 다음 결과를 담은 ResultSet 객체를 반환받을 수 있다.


import org.mybatis.domain.Shop;


public class Application {

public Shop view(List<Object> parameters) throws SQLException {

...

ResultSet resultSet = null;

Shop shop = null;


try {

...


// 쿼리문 실행 및 결과 반환

resultSet = preparedStatement.executeQuery( );


// 결과 처리

if(resultSet.next()){

shop = new Shop( );


shop.setShopNo(resultSet.getInt("SHOP_NO"));

shop.setShopName(resultSet.getString("SHOP_NAME"));

shop.setShopLocation(resultSet.getString("SHOP_LOCATION"));

shop.setShopStatus(resultSet.getString("SHOP_STATUS"));

}

} catch (ClassNotFoundException e) {

throw new RuntimeException(e);

}


return shop;

}

}

12. 조회 결과는 ResultSet 객체에 행과 열 형태로 담겨 반환된다. ResultSet 객체의 next( ) 메소드를 호출하면, 각 행에 순차적으로 접근할 수 있다. 행에 존재하는 각 열의 값은 다양한 겟터 메소드를 사용해서 가져올 수 있다. 열의 값이 숫자 타입인 경우 getInt( ) 메소드를 사용하고, 문자 타입인 경우 getString( ) 메소드를 사용한다. 겟터 메소드의 인자로 컬럼명을 지정한다.


public class Application {

public Shop view(List<Object> parameters) throws SQLException {

...


try {

...

}

} catch (ClassNotFoundException e) {

throw new RuntimeException(e);

} finally {

// 자원 및 데이터베이스 연결 해제

if(resultSet!=null){

resultSet.close();

}

if(preparedStatement!=null){

preparedStatement.close();

}

if(connection!=null){

connection.close();

}

}


return shop;

}

}

13. try ~ catch 문에 finally 문을 추가한 다음 사용한 자원 및 데이터베이스 연결을 해제한다. 객체 생성 순서의 역순으로 자원 및 데이터베이스 연결 객체의 close( ) 메소드를 호출한다.


Executor 클래스를 작성한다. Executor 클래스는 main( ) 메소드 실행을 통해서 Application 객체를 생성한 다음 view( ) 메소드를 호출한다.


14. Executor 클래스 생성 경로 : /chapter01/src/step0/Executor.java


import java.util.ArrayList;

import java.util.List;


public class Executor {

public static void main(String[] args){

// 파라미터 객체 생성 및 파라미터 등록

List<Object> parameters = new ArrayList<Object>( );

parameters.add(1);

parameters.add("Y");

}

}

15. main( ) 메소드를 작성한다. main( ) 메소드에 Application 객체의 view( ) 메소드를 호출할 때 필요한 파라미터 객체를 준비한다.


import org.mybatis.domain.Shop;


public class Executor {

public static void main(String[] args){

// 파라미터 객체 생성 및 파라미터 등록

List<Object> parameters = new ArrayList<Object>( );

parameters.add(1);

parameters.add("Y");


// 조회 쿼리문 실행 및 결과 반환

Application application = new Application();

try {

Shop shop = application.view(parameters);

} catch (SQLException e) {

e.printStackTrace();

}


}

}

16. Application 객체를 생성한 다음 view( ) 메소드를 호출한다. 준비한 파라미터 객체를 인자로 전달한다. Application 객체의 view( ) 메소드를 호출할 때 에러가 발생할 수 있다. try ~ catch 문을 사용해서 예외를 처리한다.


Application 클래스는 JDBC 인터페이스 호출 순서에 맞추어 작성한 전형적인 JDBC 인터페이스 호출 순서에 맞추어 작성한 전형적인 JDBC 프로그래밍이다. Application 클래스는 Executor 클래스의 main( ) 메소드 호출을 통해서 실행된다.


JDBC 프로그래밍 단점을 고스란히 가진 Application 클래스를 개선하는 데 필요한 SqlMapper 클래스를 작성한다. SqlMapper 클래스를 완성하면, Application 클래스는 좀 더 간결하고 유연한 구조를 가질 수 있다. 


SQLMapper 클래스에 구현할 기능

1. 중복된 기능 추출

2. 외부 파일 정의

3. 인자와 결과를 자동 처리

4. 단순한 실행 메소드 정의


변수는 말 그대로 변하는 수이다. 값을 넣을 수 있는 빈 그릇과 같다.



변수 선언하고 값 대입하기

변수를 사용하기 위해 어떤 형태의 자료를 저장할 것인지 정해야 한다. 이 형태를 변수의 '자료형'이라고 한다. 변수의 자료형을 선택했다면 변수의 이름도 정해주어야 한다. 이렇게 변수의 자료형을 선택하고 이름을 정하는 것을 '변수를 선언한다'라고 한다.


선언한 변수에는 자료형에 맞는 값을 대입할 수 있다.


코드

int level;

level = 10;

System.out.println(level);

int는 정수를 나타내는 자료형이고, level은 변수 이름이다.

= 기호는 프로그램에서는 '오른쪽 값을 왼쪽에 대입한다'는 의미로 사용한다.


결과



변수 초기화하기

코드

int level = 10;

System.out.println(level);

변수를 선언할 때 변수 값을 바로 대입할 수 있다. 변수에 처음 값을 대입하는 것을 '초기화'라고 한다. 

변수의 초기화는 변수 선언과 동시에 초기화를 할 수도 있고, 변수를 선언한 이후 대입할 값이 정해지는 시점에 초기화를 할 수도 있다.


결과


변수 이름 정하기

- 변수 이름은 영문자(대문자, 소문자)나 숫자를 사용할 수 있고, 특수 문자 중에는 $, _만 사용할 수 있다.

- 변수 이름은 숫자로 시작할 수 없다.

- 자바에서 이미 사용 중인 예약어는 사용할 수 없다.


변수 이름은 프로그램에서 계속 사용하기 때문에 사용 목적에 맞게 의미를 잘 부여해서 만드는 것이 좋다. 

변수 길이에 제한이 없으므로 줄임말보다는 의미를 풀어서 쓰는 것이 프로그램을 작성하고 이해하는 데 편리하다.

카멜 표기법(camel notation) - 소문자로 시작하여 여러 단어로 만들 경우 중간에 다른 뜻의 단어가 등장할 때 첫 글자를 대문자로 사용


간단한 HTML 문서 만들기

<!doctype html>

<html>

<head>

<meta charset="utf-8">

<title>내가 처음 만드는 HTML 문서</title>

</head>

<body>

<h1>시간이란..</h1>

<p>내일 죽을 것처럼 오늘을 살고<br>

영원히 살 것처럼 내일을 꿈꾸어라.</p>

<img src="images/first.jpg">

</body>

</html>

웹 브라우저는 웹 문서를 한 줄씩 읽으면서 해석한다. 

웹 문서는 아무리 길더라도 <!doctype>과 <html>, <head>, <body> 네 가지 태그를 이용해 문서의 시작과 끝을 표시한다.


웹 브라우저에서 확인! 

<h1> 태그를 사용한 부분에는 제목이, <p> 태그 부분에는 일반 텍스트 단락이, <img> 태그를 사용한 부분에는 지정한 이미지가 표시된다.


HTML 문서 기본 구조 살펴보기

<!doctype> - 문서 유형을 지정하는 선언문

<!doctype html>


<html> 태그 - 웹 문서 시작을 알리는 태그

<!doctype html>

<html lang="ko">

<head></head>

<body></body>

</html>

<html> 태그에는 lang이라는 속성을 사용해 문서에서 사용할 언어를 지정할 수 있다. 

de - 독일어, en - 영어, fr - 프랑스어, ja - 일본어, ko - 한국어, zh - 중국어

<html> 태그와 </html> 태그 사이에는 문서 정보를 지정하는 <head> 태그와 실제 화면에 보이는 문서 내용을 입력하는 <body> 태그가 포함된다.


<head> 태그 - 브라우저에게 정보를 주는 태그

<head>

<title>문서 제목</title>

<meta charset="utf-8">

<meta name="description" content="여기에 사이트에 대한 짧은 설명을 입력합니다">

</head>

웹 브라우저 화면에는 보이지 않지만 웹 브라우저가 알아야 할 정보들은 모두 <head> 부분에 입력한다. 

문서에서 사용할 외부 파일들도 이곳에서 링크한다.


- <title> 태그 - 문서 제목

<title> 태그에서 지정하는 내용은 거의 모든 웹 브라우저의 제목 표시줄에 표시되고 해당 페이지를 방문하는 방문자나 검색 엔진은 제목 표시줄의 제목을 보고 페이지 전체의 내용을 추측한다.


- <meta> 태그 - 문자 인코딩 및 문서 키워드, 요약 정보

<meta> 태그에서 가장 중요한 부분은 문자 인코딩을 지정하는 것이다. HTML5에서는 모든 언어를 표시할 수 있는 utf-8 방식을 사용한다.

또한 <meta> 태그를 이용해 문서에 대한 간단한 설명을 지정할 수 있는데 이렇게 지정한 짧은 설명은 검색 결과에 사이트 설명으로 표시된다.

* 국내 검색 사이트에서는 각 포털 내의 블로그를 중심으로 검색하기 때문에 <meta> 태그가 제 역할을 못한다. 구글 검색 엔진에서 이해할 수 있는 <meta> 태그에 대한 자세한 설명은 https://support.google.com/webmasters/answer/79812?hl=ko를 참고한다.


이외에도 <head> 태그 안에는 스타일 시트를 사용하기 위한 <style> 태그와 <link> 태그 등이 사용된다.


<body> 태그 - 실제 브라우저에 표시될 내용

<body>

<h1>시간이란...</h1>

<p>내일 죽을 것처럼 오늘을 살고<br>

영원히 살 것처럼 내일을 꿈꾸어라</p>

<img src="images/first.jpg">

</body>

대부분의 태그가 <body> 태그와 </body> 태그 사이에서 사용하는 태그들이다.


JDK 다운로드 및 설치

http://www.oracle.com/technetwork/java/javase/downloads


현재 가장 많이 사용되는 버전은 8이다. "Java SE 8OO" 부분에 있는 "JDK Download" 버튼을 클릭한다.


JDK를 다운로드 받으려면 먼저 License 동의해야 한다. "Accept License Agreement"를 클릭한다. 사용하고 있는 운영체제에 맞는 JDK를 다운로드 해야 한다. 윈도우 64비트 운영체제의 경우 "jdk-8u181-windows-x64.exe"를 다운로드 받는다.


환경변수 설정

"환경변수" 버튼을 클릭한다.


시스템 변수 영역의 "새로 만들기" 버튼을 클릭한다.


변수이름엔 "JAVA_HOME"을 변수 값엔 JDK가 설치된 경로를 입력한다.


같은 방법으로 "CLASSPATH" 환경변수를 추가한다. 값은 ".;%JAVA_HOME%\lib\tools.jar" 로 입력한다. "%JAVA_HOME%"은 앞에서 설정한 JAVA_HOME 환경변수의 값으로 치환하라는 의미이다.


시스템 변수 영역에서 PATH를 찾아서 선택한 후 "편집" 버튼을 클릭한다.


우측의 "새로 만들기" 버튼을 클릭한 후 "%JAVA_HOME%\bin"을 입력한다.


cmd 창에 "javac -version"을 입력했을 때 다음 같은 실행 결과가 보인다면 설치가 잘 된 것이다.


이클립스 다운로드 및 설치

http://www.eclipse.org/downloads


하단에 있는 Download Packages 링크를 클릭한다.


목록을 살펴보면 다양한 이클립스 버전이 있다. 이클립스를 이용하여 자바 웹 어플리케이션을 개발하려면 "Eclipse IDE for Java EE Developers"를 다운로드 받아야 한다. 본인의 운영체제에 맞는 버전을 다운로드 받는다.


이클립스는 압축만 해제하면 된다. 삭제할 때도 압축을 해제한 폴더만 삭제하면 된다.


이클립스를 실행하면 workspace 경로를 물어보는 창이 열린다. workspace란 이클립스로 관리하는 프로젝트가 저장되는 경로를 의미한다.


이클립스 설정하기

Window -> Preferences 메뉴를 클릭한다.


Java - Installed JREs에서 Add를 클릭한다.


Directory에서 jdk 경로를 선택하고 Finish를 클릭한다.


jdk로 변경한다.


프로젝트 내에서 JAVA, HTML, xml 등의 다양한 종류의 파일이 사용되는데 파일마다 인코딩 하는 방법이 다르면 글자가 깨지는 현상이 발생한다. 이런 문제가 발생하지 않도록 인코딩을 설정해 두는 것이 좋다.


Preferences 다이얼로그가 열리면, General -> Editors -> Text Editors -> Spelling 메뉴를 활성화하고, Encoding 메뉴에서 Other 라디오 버튼을 클릭하고 UTF-8로 선택하고 Apply 버튼을 클릭한다.


General -> Workspace 메뉴를 활성화하고, Text file encoding 메뉴에서 Other 라디오 버튼을 클릭하고 UTF-8


JSON -> JSON Files 메뉴를 활성화하고, Encoding 항목에서 UTF-8


Web을 활성화해주고 CSS Files 메뉴를 클릭하고, Encoding 항목에서 UTF-8을 선택하고 Apply 버튼을 눌러준다.

같은 방법으로


HTML Files


JSP Files 의 인코딩 설정도 바꿔준다.


  1. 2018.08.22 14:10

    비밀댓글입니다

  2. 디벨로퍼수 2018.08.25 17:23 신고

    한수 배웁니다^^

  3. 김성종 2018.10.03 09:10 신고

    감사히 잘 보았습니다

변수(variable)

'변하다'의 변과 '데이터'를 의미하는 수. 즉, 변하는 데이터
프로그래밍적 의미로는 데이터를 담을 수 있는 공간. 해당 공간의 담긴 값은 소스코드에 따라 변할 수 있다.


변수명 규칙
대소문자가 구분되며 길이 제한이 없음
예약어를 사용하면 안됨

- 예약어 : abstract, default, if, package, this, assert, do, goto, private, throw, boolean, double, implements, protected, throws, break, else, import, public, transient, byte, enum, instanceof, return, true, case, extends, int, short, try, catch, false, interface, static, void, char, final, long, strictfp, volatile, class, finally, native, super, while, const, float, new, switch, continue, for, null, synchronized

숫자를 사용해도 되지만 숫자로 시작하면 안됨
특수문자는 _(언더바)와 $만 허용
낙타표기법 - 처음은 소문자 구분자 단어의 첫 글자를 대문자
한글 이름 변수도 가능하지만 쓰지 않기를 권장
변수명만 보고도 데이터를 예측할 수 있도록 의미있는 이름으로 작성



자료형 - 변수 선언

자료형 변수명 ; : 메모리 상에 데이터를 저장할 수 있는 공간을 할당하는 것


boolean bool;    // boolean 데이터 타입을 가지는 bool이라는 변수


논리형 : true 또는 false만 표현하는 데이터형 - boolean (1Byte)


byte bnum;    // byte 데이터 타입을 가지는 bnum이라는 변수

short snum;    // short 데이터 타입을 가지는 snum이라는 변수

int inum;        // int 데이터 타입을 가지는 inum이라는 변수

long lnum;      // long 데이터 타입을 가지는 lnum이라는 변수


정수형 : 하나의 정수값을 표현하는 데이터형

- byte (1Byte) : -128 ~ +127
- short (2Byte) : -32768 ~ +32768
- int (4Byte) : -2147483648 ~ +2147483647
- long (8Byte) : -2^63 ~ +2^63-1


float fnum;        // float 데이터 타입을 가지는 fnum이라는 변수

double dnum;    // double 데이터 타입을 가지는 dnum이라는 변수


실수형 : 하나의 실수값을 표현하는 데이터형

- float (4Byte)
- double (8Byte)


char ch;    // char 데이터 타입을 가지는 ch라는 변수


문자형 : 한 개의 문자를 저장하는데 사용 - char (2Byte) : 0 ~ 65,535 (유니코드문자)


String str;    // String 데이터 타입을 가지는 str이라는 변수


문자열형 : 하나의 문자열을 저장하는데 사용

- String (참조형, 4Byte) : 자바에서 만든 특수한 형태의 자료형으로 데이터가 저장되어 있는 주소를 저장


※ 데이터 오버플로우 : byte 형에서 127+1을 하면 범위를 초과하는 경우를 뜻하는데 허용범위 최소값인 -128이 된다.



변수 초기화

생성된 변수의 값을 대입


int age = 20;

String ch = "기차";


생성과 동시에 값 대입


int age;

age = 20;


String ch;

ch = "기차";


생성 후 값 대입


int firstNum = 20;

int secondNum = 10;

int result;


result = firstNum + secondNum;

System.out.println(firstNum + "+" + secondNum + "=" + result);

result = firstNum - secondNum;

System.out.println(firstNum + "-" + secondNum + "=" + result);

result = firstNum * secondNum;

System.out.println(firstNum + "*" + secondNum + "=" + result);

result = firstNum / secondNum;

System.out.println(firstNum + "/" + secondNum + "=" + result);



minimelody.tistory.com/130



Project 만들기 : New - Java Project - 프로젝트명 입력 - Finish
프로젝트 : 여러개의 패키지가 존재하는 공간으로 하나의 작품. 프로젝트명은 낙타 표기법 - 소문자로 시작, 구분마다 첫글자 대문자



Package 만들기 : New - package - 패키지명 입력 - Finish
패키지 : 프로젝트 안에 존재하는 하나의 디렉토리로 다양한 클래스 파일이 존재. 패키지명은 2~3단계 형식으로 모두 소문자



Class 만들기 : New - class - 클래스명 입력 - 메인 메소드 필요시 체크 - Finish
클래스 : 실제 소스코드가 들어 있는 파일. 클래스명은 파스칼 표기법 - 대문자로 시작, 구분마다 첫글자 대문자



소스코드 작성

package org.kh.java;    // 포함되는 패키지명


public class SampleMain {    // 해당 클래스명


public static void main(String[] args) {    // 실행용 main 메소드

System.out.println("Hello Java");        // 출력 기능을 가진 메소드


}


}


package 선언 : package org.kh.java;

- 서로 관련 있는 클래스들끼리 그룹으로 묶어서 효율적으로 관리

- 같은 이름의 클래스라도 다른 패키지에 각각 존재하는 것도 가능

- 클래스의 실제 이름은 패키지 명을 포함

import 선언 : import java.util.*; import java.lang.*; - 포함 선언을 하지 않아도 자바 가상머신에 의해 자동 포함처리되는 패키지명

- 서로 다른 패키지에 있는 클래스를 참조

- 소스 파일에 여러 번 선언이 가능

class 작성부 : public class SampleMain {    }

- main method 작성 : public static void main(String[] args) - main() 메소드의 head 부분

{    }

- 사용자 정의 method 작성 : public void 메소드명(매개변수)
- 주석 작성 : 소스코드의 내용을 설명하기 위한 문구를 넣을 때 사용 → 주석처리 되어있는 부분은 컴파일시 소스분석 하지 않는다

// : 한줄만 주석처리할 때 사용
/*    */ : 한줄이상의 범위를 주석처리할 때 사용


컴파일 (Ctrl + F11)



실행용 클래스

package product.run;


import product.model.vo.Product;


public class TestProduct {

public static void main(String[] args)

{

// Product의 printProduct 실행

Product pr = new Product();

pr.printProduct();

}

}


해당 프로그램을 실행하기 위한 용도의 클래스
기능제공 클래스를 사용하기 위한 클래스
main 메소드가 포함되어 있는 클래스


기능제공 클래스

package product.model.vo;


public class Product {

public void printProduct()

{

// 제품소개글 출력

System.out.println("TV, 42인치, 100만원");

}

}


오직 기능을 제공하기 위한 클래스
main 메소드가 포함되어 있지 않은 클래스




package com.kh.edu;


import java.util.Date; // 오류 클릭하여 자동 생성! 자바에서 지원하는 API 중 java.util.Date 클래스 이용


public class TestJavaApi {

public static void main(String[] args)

{

System.out.println(new Date()); // 날짜 출력

}

}



'' 카테고리의 다른 글

자바 프로젝트, 패키지, 클래스  (0) 2018.02.16

<img>

이미지를 삽입할 때 사용하는 태그이다.

<img src="이미지 경로" alt="대체 텍스트" width="숫자" height="숫자">

  • src : 이미지 파일 경로를 지정한다.
  • alt : 이미지가 제대로 표시되지 않는 상황에서 이미디 대신 표시되는 텍스트를 지정한다.
  • width, height : 이미지 크기를 조정한다. 단위는 px.

웹에서 사용하는 이미지 파일 형식

 GIF (Graphic Interchange Form) 

 색상 수 최대 256가지 - 작은 이미지에 사용, 투명한 배경 

 JPG (Joint Photographic Experts Group) 

 사진 기본 형식 

 PNG (Portable Network Graphics) 

 투명한 배경 + 다양한 색상 

 SVG (Scalable Vector Graphics) 

 벡터 이미지 - 아이콘이나 로고 이미지에 사용 



  1. hoho 2018.04.19 10:19 신고

    한 수 배우고 갑니다^^

표는 행(row)과 열(column)이 만나 이루는 셀(cell)들로 구성된다.

<table border="1">

<tr>

<th></th><th>Column 1</th><th>Column</th><th>Column 3</th>

</tr>

<tr>

<th>Row 1</th><td>Cell 1-1</td><td>Cell 1-2</td><td rowspan="2">Cell 1-3</td>

</tr>

<tr>

<th>Row 2</th><td colspan="2">Cell 2-1</td>

</table>


<table>, <tr>, <td>, <th>

<table> 태그를 이용해 표 전체 윤곽을 잡고 <tr> 태그로 행(row)을 만든 후 <td> 태그로 각 행마다 들어갈 셀(cell)을 만든다.
첫 번째 행과 열을 셀의 제목으로 하는 경우가 많은데 <td> 대신 <th> 태그를 사용하면 글자가 굵게 표시되고 중앙에 배치된다.

<table border="1">

<tr>

<th colspan="숫자">Table Header Cell</th>

<td rowspan="숫자">Table Cell</td>

</tr>

</table>

  • colspan : 셀을 가로로 합친다.
  • rowspan : 셀을 세로로 합친다.

<thead>, <tbody>, <tfoot>

표를 각각 제목(head), 본문(body), 요약(foot)으로 나눌 때 사용하는 태그이다.

<table>

<thead>

<tr></tr>

</thead>

<tbody>

<tr></tr>

</tbody>

<tfoot>

<tr></tr>

</tfoot>

</table>


<ul>

<li>Unordered List</li>

<li>Unordered List</li>

</ul>

<ol>

<li>Ordered List</li>

<li>Ordered List</li>

</ol>


<ul>, <li>

<ul> 태그 안에 <li> 태그를 사용해 각 항목을 표시하면 순서 없는 목록을 만들 수 있다. 각 항목 앞에는 불릿(bullet)이 붙는다.

<ul>

<li>List Item</li>

</ul>


<ol>, <li>

<ol> 태그 안에 <li> 태그를 사용해 각 항목을 표시하면 순서 있는 목록을 만들 수 있다. 각 항목 앞에는 숫자가 붙는다.

<ol>

<li>List Item</li>

</ol>


+ Recent posts