조건문 if 문 1. 년도에 해당하는 12지를 출력하시오 // 년도에 해당하는 12지를 출력하시오 // 년도를 12로 나눈 나머지가 0이면 원숭이띠 int y = 1996; int z = y % 12; if (z == 0) { System.out.println("원숭이"); } else if (z == 1) { System.out.println("닭"); } else if (z == 2) { System.out.println("개"); } else if (z == 3) { System.out.println("돼지"); } else if (z == 4) { System.out.println("쥐"); } else if (z == 5) { System.out.println("소"); } else if (z ..
전체 글
1. 자바 개발 도구 (JDK) 설치 자바 프로그램을 개발하기 위해서는 먼저 java SE(Standard Edition)의 구현체인 JDK를 설치해야 한다. JDK는 프로그램 개발에 필요한 자바 가상 기계 (JVM), 라이브러리 API, 컴파일러등의 개발 도구가 포함되어 있고, JRE에는 프로그램 실행에 필여한 자바 가상 기계(JVM), 라이브러리 API만 포함되어 있다. * JRE = JVM + 표준 클래스 라이브러리 * JDK = JRE + 개발에 필요한 도구 JDK 는 오라클 사이트에서 다운받을 수 있다. 자바 8 ( JDK 1.8) 이상의 설치 파일을 다운로드 한다. https://www.oracle.com/java/technologies/downloads/#java8-windows JDK는 운..
자바의 특징 1. 플랫폼에 독립적이다. 2. JVM이 메모리 관리한다. 3. 객체지향 언어이다. 객체 지향 언어 프로그램을 개발하는 기법으로 부품에 해당하는 객체들을 먼저 만들고 이것들을 하나씩 조립 및 연결해서 전체 프로그램을 완성하는 기법을 객체 지향 프로그래밍 (OOP : Object Oriented Programming) 이라고 한다. 객체를 만들기 위해 설계도인 클래스를 작성해야 하고, 객체와 객체를 연결하여 목적에 맞는 프로그램을 만든다. 객체 지향 언어가 가져야 할 캡슐화, 상속, 다형성기능을 완벽하게 지원하고 있다. 메모리를 자동으로 관리 C++은 메모리에 생성된 객체를 제거하기 위해 개발자가 직접 코드를 작성해야 한다. 자바는 개발자가 직접 메모리에 접근 할 수 없도록 설계되어있으며, 메..
1. HTML 로 내리는 방법 2. API로 바로 내리는 방법 1. HTML 로 내리는 방법 웹브라우저에서 hello-mvc 라는 호출을 받게 되면 먼저 내장톰켓서버에서 반응을 한다. 컨테이너에 있는 @GetMapping을 보고 html에 리턴을 한다. @GetMapping("hello-mvc") //MVC, 템플릿 엔진방식 - 템플릿 엔진을 //model, view 방식으로 쪼개서 다시 랜더링한 것을 html로 전달 @GetMapping("hello-mvc") public String helloMvc(@RequestParam("name") String name, Model model){ //@RequestParam("가져올 데이터의 이름") [데이터타입] [가져온데이터를 담을 변수] model.addA..
BoardWeb 프로젝트의 src/main/resources 소스 폴더를 선택하고 마우스 오른쪽 버튼을 클릭한다. 그리고 [new] -> [other] 메뉴를 클릭하면 spring 폴더에 있는 Spring Bean Configuration File을 선택하고 를 클릭한다. File name 은 applicationContext를 입력한다. 기본적으로 루트 엘리먼트와 네임스페이스 관력 설정들이 추가되어 제공된다. applicationContext 에 TV예제를 테스트하기 위해 SamsungTV 클래스를 스프링 설정파일에 등록한다. 엘리먼트에서 가장 중요한 것은 class 속성값이다. 여기에 패키지 경로가 포함된 전체 클래스 경로를 지정해야 한다. TVUser.java package polymorphism;..
결합도를 낮추기 위한 또 다른 방법으로는 디자인 패턴을 이용하는 방법이 있다. 다형성을 이용하는 방법은 메소드를 호출할 때 인터페이스를 이용함으로써 쉽게 교체할 수 있지만, 변경하고자 할 때, 객체를 생성하는 소스를 수정해야만 한다. Factory 패턴을 적용하면, 클라이언트에서 사용할 객체 생성을 캡슐화하여 TVUser와 TV사이를 느슨한 결합상태로 만들어준다. Factory 패턴이 적용된 BeanFactory클래스를 추가한다. package polymorphism; public class BeanFactory { public Object getBean(String beanName) { if(beanName.equals("Samsung")) { return new SamsungTV(); } else i..
결합도를 낮추기 위해서 다양한 방법을 사용할 수 있지만 가장 쉽게 생각할 수 있는 것이 객체지향 언어의 핵심 개념인 다형성(Polymorphism)을 이용하는 것이다. 다형성을 이용하려면 상속과 메소드 재정의 (Overriding) 그리고, 형변환이 필요하다. 앞서 프로그램에서 했던 TV 클래스들의 최상위클래스로 사용할 TV인터페이스를 추가하고, 모든 TV가 공통으로 가져야 할 메소드들을 추상메소드로 선언한다. TV. java package polymorphism; public interface TV { public void powerOn(); public void poweroff(); public void volumeUp(); public void volumeDown(); } SamsungTV.java..
결합도란 하나의 클래스가 다른 클래스와 얼마나 많이 연결되어 있는지를 나타내는 표현이며 , 결합도가 높은 프로그램은 유지보수가 어렵다. 예제로 SamsungTV와 LgTV의 클래스를 만들고 시청에 필수 기능인 4가지의 메소드를 만들었다. TVUser 클래스에서 두 TV클래스를 번갈아 사용하도록 프로그램을 구현하였다. SamsungTV public class SamsungTV { public void powerOn() { System.out.println("SamsungTV---전원 켠다."); } public void poweroff() { System.out.println("SamsungTV---전원 끈다"); } public void volumeUp() { System.out.println("Sams..
/web.xml hello hello.HelloServlet hello /hell.do 위 설정은 브라우저에서 /hello.do라는 URL 요청을 전송하며, hello라는 이름으로 등록된 hello.HelloServlet 클래스를 찾아 객채를 생성하고 실행한다는 설정이다. HelloServlet프로그램을 실행하며 web.xml 설정대로 객체가 생성되고 실행된다. 서블릿 컨테이너는 다음 순서에 따라 동작한다. 1. WEV-INF/web.xml 파일을 로딩하여 구동] 2. 브라우저로부터 /hello.do 요청 수신 3. hello.HelloServlet 클래스를 찾아 객체를 생성하고 doGet() 메소드를 호출 4. doGet() 메소드 실행결과를 클라이언트 브라우저로 전송
1. 자바 기반의 프레임워크 Presentation Struts Struts 프레임워크는 UI Layer에 중점을 두고 개발된 MVC 프레임워크 Spring(MVC) Struts와 동일하게 MVC 아키텍처를 제공하는 UI Layer 프레임워크이다. 하지만 Struts처럼 독립된 프레임워크는 아니고 Spring 프레임워크에 포함되어 있다. Business Spring(IoC, AOP) Spring은 컨테이너 성격을 가지는 프레임워크이다. Spring의 IoC와 AOP 모듈울 이용하여 Spring 컨테이너에서 동작하는 엔터프라이즈 비즈니스 컴포넌트를 개발할 수 있다. Percictence Hibernate or JPA Hibernate는 완벽한 ORM(Object Relation Mapping) 프레임워크이..