본문 바로가기

전체 글

(157)
MVC 모델 (6) - 최근 공지사항 메인페이지에 출력 ▷ MVC 모델을 위한 5개의 자바 패키지 ▷ controller (Servlet 클래스) → Model 과 View 의 연결 역할을 수행 → 모든 요청의 시작점(진입점) 역할을 수행 → 자바 코드로 이루어져 있지만, 웹으로부터의 요청도 처리되어야 하므로 Servlet 클래스로 정의 controller.BoardFrontController.java package controller; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpS..
Android ▷ 스마트폰 → 통화 기능 + 컴퓨터 + 다양한 기능 내장(MP3, 카메라, DMB, GPS 등) → 스마트폰의 운영체제 ▷ 안드로이드 버전의 변천사 ▷ 안드로이드의 주요 기능 → 애플리케이션 프레임워크를 통해서 제공되는 API를 사용함으로써 코드를 재사용하여 효율적이고 빠른 애플리케이션 개발 가능함 → 모바일 기기에 최적화된 달빅 또는 아트런타임(ART) 제공함 → 2D 그래픽 및 3차원 그래픽을 최적화하여 표현함 → 모바일용 데이터베이스인 SQLite를 제공함 → 각종 오디오, 비디오 및 이미지 형식을 지원함 → 모바일 기기에 내장된 각종 하드웨어(블루투스, 카메라, 나침반, WiFi등) 지원함 → 이클립스 IDE 또는 Android Studio를 통해서 강력하고 빠른 개발 환경 제공함 ▷ 안드로이드..
swing (Container) ▷ JPanel → 여러 개의 컴포넌트를 하나로 묶는 경량 컨테이너 → 기본 레이아웃 : FlowLayout → 주로, 프레임(JFrame)에 패널(Jpanel)을 부착하여 컴포넌트를 배치하는 형태로 사용 ex_container.Clone_Ex1.java package ex_container; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Clone_Ex1 { public Clone_Ex1() { showFrame(); } public void showFrame() { JFrame f = new JFrame("Clone_Ex1"); f.setBounds(600,400,600,400); f.setDefaultCl..
swing (Component) ▷ JTextField → 텍스트 한 줄을 입력 가능한 컴포넌트 → BorderLayout에 바로 부착할 경우 기본 생성자로 생성 가능하지만, 주로 JPanel 등에 부착해서 사용할 때 생성자 파라미터로 컬럼길이를 전달해야 함 → getText() 메서드로 입력된 텍스트를 가져오고, setText() 메서드로 새 텍스트를 표시할 수 있다. → ActionListener를 연결하여 텍스트 입력 후 엔터키에 대한 동작 처리 가능 → KeyListener를 연결하면 키보드에서 눌러지는 키에 대한 동작 처리 가능 ex_component.Clone_Ex1 package ex_component; import java.awt.*; import java.awt.event.*; import javax.swing.*; p..
swing (Layout 변경2) ▷ GridLayout → 컴포넌트를 테이블(표) 형태로 배치하는 레이아웃 → 행, 열 형태의 구조를 가지며, 배치되는 컴포넌트의 크기가 균등함 → GridBagLayout 사용 시 크기가 다른 행, 열 구조 편성 가능 → 첫 행의 좌측열부터 우측열 방향, 다음행의 좌측열부터 우측열 순으로 배치 → BorderLayout과 마찬가지로 컨테이너 크기가 변경되면 컴포넌트의 크기만 변경되고, 컴포넌트의 배치 위치는 변경되지 않음 ex_layout.Clone_Ex4.java package ex_layout; import java.awt.*; import javax.swing.*; public class Clone_Ex4 { public Clone_Ex4() { showFrame(); } public void s..
swing (Layout 변경) ▷ 레이아웃 변경 → 기존에 설정된 레이아웃을 변경하여 다른 형태로 컨포넌트에 배치 가능 → 컨테이너 객체 생성 시 생성자에 레이아웃 객체를 전달하거나 → 컨테이너 객체의 setLayout() 메서드를 호출하여 레이아웃 변경 가능 ▷ FlowLayout → 컨테이너 내의 컴포넌트들을 흐름에 따라 자연스럽게 배치하는 레이아웃으로 좌 → 우, 상 → 하 방향으로 컴포넌트를 차례대로 배치 → 컨테이너 크기가 변경되면, 컴포넌트의 크기는 유지되나, 위치가 변경됨 (컨테이너 크기에 따라 위치가 자동으로 조절됨) → 하나의 컨테이너 내부에 여러 개의 컴포넌트 배치가 가능함(위치 지정 불가) → JPanel(패널)의 기본 레이아웃 → 생성자에 정렬 방식을 전달하여 변경 가능 (파라미터 : FlowLayout.XXX ..
swing (Layout) ▷ BorderLayout → 대상 컨테이너의 동, 서, 남, 북, 중앙 5개의 영역으로 분할하여 컴포넌트를 배치  → JFrame 객체(프레임)의 기본 레이아웃  → 별도의 설정이 없을 경우 기본적으로 BorderLayout이 적용되어 있음  → 배치할 영역을 지정하는 경우 add() 메서드의 두 번째 파라미터로 BorderLayout.XXX 상수로 위치 지정 가능  → 만약, 영역 지정을 생략할 경우 기본 영역이 CENTER 영역으로 지정됨  → 한 영역 당 1개의 컨테이너 또는 컴포넌트 배치 가능  → 만약, 한 영역에 두 개 이상의 컴포넌트 등을 배치할 경우 마지막에 배치된 대상만 표시됨  → BorderLayout이 적용된 대상의 크기를 변경하더라도 내부에 배치된 컴포넌트의 크기만 ..
MVC 모델 (5) ▷ MVC 모델을 위한 5개의 자바 패키지 ▷ DAO 패키지 ▷ fileBoardDAO → 실제 비즈니스 로직을 수행할 FileBoardDAO 클래스 정의 → 외부로부터 인스턴스마다 저장할 데이터를 각각 구별해야 할 필요가 없으므로 싱글톤 패턴을 활용하여 인스턴스를 직접 생성하고 외부로 공유하도록 정의 dao.FileBoardDAO.java package dao; //import db.JdbcUtil; import static db.JdbcUtil.close; // JdbcUtil 클래스의 close() 메서드 3개만 static import import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; i..