프로젝트 생성 1. [FILE] -> [NEW] -> [Spring Starter Project] 2. 프로젝트 이름 설정 -> [Next] 3. [WEB] 체크 후 [FINISH] 4. pom.xml 추가 org.springframework.boot spring-boot-starter-test test org.apache.tomcat.embed tomcat-embed-jasper provided 5. jsp 파일 생성 - 한방에 만들기 webapp/WEB-INF/views 6. src/main/resources 안에 있는 application.properties에 코드 작성 spring.mvc.view.prefix=/WEB-INF/views/ spring.mvc.view.suffix=.jsp 7. We..
SPRING 1. [FILE] -> [NEW] -> [Spring Starter Project] 2. Name 부분에 프로젝트 이름 입력 (Package명 수정하고 싶으면 수정) -> [Next] 3. [JDBC], [WEB], [MYSQL] 체크 후 [FINISH] MYSQL #필자의 MYSQL 설정 상태 1. SCHEMA 추가 #Collation : utf8 - default collation 으로 설정 2. Table 생성 SPRING [src/main/resources] 밑에 있는 [application.properties] 코드 작성 위와 같이 Package와 java파일 생성 UserController.java 입력 후 실행 #실행 방법 프로젝트 -> 마우스 오른쪽 클릭 -> [Run as] ..
Anonymous (익명) : 이름이 없는 객체 - 단독으로 생성할 수 없고, 클래스를 상속하거나 인터페이스를 구현해야만 생성가능 - 필드의 초기값이나 로컬변수의 초기값, 매개 변수의 매개값으로 주로 대입됨 1. 자식 객체 생성 - 부모 타입으로 필드나 변수를 선언하고, 자식 객체를 초기값으로 대입할 경우 - 생성자 선언 불가 class Child extends Parent { } //자식 클래스 선언 class A { Parent field = new Child(); //필드에 자식 객체를 대입 void method() { Parent localVar = new Child(); //로컬 변수에 자식 객체를 대입 } } -> 필드를 선언할 때 초기값으로 익명 자식 객체를 생성해서 대입 class A{ /..
중첩 클래스 - 두 클래스의 맴버들을 서로 쉽게 접근 할 수 있음 - 외부에는 불필요한 관계 클래스를 감춤으로써 코드의 복잡성 감소 ex) class ClassName { class NestedClassName { } } 1. 멤버 클래스 : 클래스의 멤버로써 선언되는 중첩 클래스 - 클래스나 객체가 사용중이라면 언제든지 재사용 가능 ex) class A { class B { } } 2. 로컬 클래스 : 메소드 내부에서 선언되는 중첩 클래스 - 메소드 실행 시에만 사용 - 메소드 실행 종료시 사라짐 ex) class A { static class B { } } - 인스턴스 멤버 클래스 : static 키워드 없이 선언된 클래스 - 인스턴스 필드와 메소드만 선언 가능 - 정적 필드와 메소드는 선언 불가 -..
파일 스트림 (File Stream) 1. 스트림 (stream) : 파일, 네트워크 등에서 데이터를 바이트 단위로 읽고 쓰는 클래스 - Stream class는 상위 기본 클래스 -> 상속 클래스 : FileStream, MemoryStream, NetworkStream, SqlFileStream 등 - using System.IO 선언해서 사용 2. File Stream : 파일 입출력을 다루는 기본 클래스 - 상속 계층 구조 System.Object + System.MarshlByRefObject + System.IO.Stream + System.IO.FileStream - byte[ ] 배열로 데이터를 읽거나 저장 -> 형변환이 요구됨 - 파일 정보 설정에 사용 - 기본 형태 public File..
일차원 배열 - 같은 데이터형 + 변수명 + 순차적인 메모리 나열 - 참조형 : new를 통해 생성 - Array로부터 파생된 참조형 - 기본 형태 데이터형[ ] 배열명; ex) int[ ] array_name; #배열명은 참조형이기 때문에 데이터형뒤에 [ ]를 붙힘 - Array.Length 속성 - foreach 사용 가능 (읽기 전용) namespace _0614 { class Program { static void Main(string[] args) { int[] array = { 1, 2, 3, 4 }; //int[] array = new int[] { 1, 2, 3, 4 }; for (int i = 0; i < 4; i++) Console.Write("{0} ", array[i]); Conso..
연산자 : +, -, !, ~, ++, -- 등 - ! (not)은 bool형에만 사용 ex) !-1 //0 namespace _0613 { class Program { static void Main(string[] args) { bool bFlag = false; Console.WriteLine("{0} {1} {2}", !bFlag, !true, !false); //true false true } } } 산술 연산자 : *, /, %, -, + - string에서 +는 문자열 연결 - 정수/부동 + "문자열" = "문자열" namespace _0613 { class Program { static void Main(string[] args) { string str = "3" + ".14"; Consol..
값 형식 - System.Object + System.ValueType 에서 파생 - 변수가 직접 값을 저장하는 형 - 기본 데이터형 - 구조체 - 열거형 - 선언 vs 생성 (new) namespace _0612 { class Program { static void Main(String[] args) { int val1 = 12; int val2 = new int(); //초기화를 하지 않아도 0 값이 지정되어있음 //Object 객체를 통해서 상속을 받고 있기 때문 Console.WriteLine("{0} {1}", val1, val2); //12 0 } } } 참조 형식 - 한 객체를 참조형 변수를 사용할 때, 참조형에 의해 내용이 바뀌면 객체에 영향을 줌 - class, interface, del..
사용자 지정형 1. struct - 기본 형태 public struct 구조체명 { //멤버, 속성, 매소드 } namespace _0612 { public struct MyStruct { public const float PI = 3.14f; public static int Age = 12; } class Program { static void Main(string[] args) { Console.WriteLine("{0} {1}", MyStruct.PI, MyStruct.Age); } } } namespace _0612 { public struct MyStruct { public int Age; //생성자 - 생성과 동시에 초기화 public MyStruct(int inAge) { Age = inAg..
표준 입력 - Console.Readkey( ) : 사용자가 눌린 키 한 문자 정보를 리턴하는 메소드 - 함수 원형 : 오버로딩 public static ConsoleKeyInfo ReadKey( ) public static ConsoleKeyInfo ReadKey(bool intercept) : true이면 화면 출력을 하지 않고, false이면 화면 출력 - ConsoleKeyInfo : 키의 문자와 shift, alt, ctrl 보조키 상태 포함 - ConsoleKeyInfo 속성 : ConsolekeyInfo.Key, ConsoleKeyInfo.KeyChar, ConsoleKey.A, ConsoleKey.Escape 등 namespace _0612 { class Program { static vo..
데이터 변환 - ToString( ) : 현재 값을 문자열로 변환 - Parse( ) : 문자열 원래 데이터형으로 변환 - Convert.ToXXX( ) namespace _0612 { class Program { static void Main(string[] args) { int value1 = 127; string str1 = value1.ToString(); //int를 문자열로 변환 Console.WriteLine(str1); int value2 = Convert.ToInt32(str1); // string을 int로 변환 Console.WriteLine(value2); string str2 = "3.14"; float value3 = float.Parse(str2); //문자열을 float로 변..
기본 데이터형 - object로부터 파생된 객체 ex) System.Object == object; - CTS에서 정의된 객체 형태 CTS byte 정수형 bool System.Boolean 1 byte char System.Char 2 byte byte System.Byte 1 byte sbyte System.SByte 1 byte short System.Int16 2 byte ushort System.UInt16 2 byte int System.Int32 4 byte uint System.UInt32 4 byte long System.Int64 8 byte ulong System.UInt64 8 byte #s (signed) : 음의 부호 #u (unsigned) : 양의 부호 실수형 float Sy..
.NET FRAMEWORK 구성요소 1. Class 라이브러리 - C# 언어 + 클래스 라이브러리 = C# 프로그래밍 - MSDN 참고 (http://msdn.Microsoft.com) - BCL (Basic Class Library) : 기본 클래스 - Window Form : 윈도우 응용 프로그램 제작을 위한 클래스 라이브러리 - ASP.NET : 웹 클래스 라이브러리 - ADO.NET : 데이터베이스 클래스 라이브러리 2. CLR (Common Language Runtime) - 역할 : 컴파일된 C# 코드를 실행 - MISL, IL(Intermediate Language) - 중간언어 - Visual Studio에서 C# 코드를 컴파일한 코드 - *.exe / *.dll - .NET 언어인 VB,..
AOP (Aspect Oriented Programming) : 관점 지향 프로그래밍 - 공통 기능을 핵심 기능과 분리해 놓고, 공통 기능 중에서 핵심 기능에 적용하고자 하는 부분에 적용 기본 용어 1. Aspect : 공통 기능 2. Advice : Aspect 순수 기능 그 자체 3. Joinpoint : Advice를 적용해야 되는 부분 (메소드) 4. Pointcut : Joinpoint의 부분, 실제로 Advice가 적용된 부분 5. Weaving : Advice를 핵심 기능에 적용하는 행위 XML 기반 AOP 구현 0. 데이터 클래스 - Student.java package com.spring.ex; public class Student { private String name; private ..
Framework : 다양한 어플리케이션을 제작하기 위해 약속된 프로그래밍 틀 - 어떠한 목적을 달성하기 위해 복잡하게 얽혀 있는 문제를 해결하기 위한 구조이자 약속 - 클래스 + 라이브러리 - 재사용성을 큰 그룹 단위로 묶어줌 - 재사용 가능한 수많은 클래스들과 라이브러리들을 융합한 채로 처음부터 제공 #모듈화를 하는 이유중 하나가 재사용성 특징 POJO (Plain Old Java Object) - 기존 라이브러리를 지원하기 용이 - 일반적인 자바 코드를 이용하여 개발 가능 - 객체가 가벼움 - 별도의 프레임워크 없이 JAVA EE를 사용할 떄에 비해 인터페이스를 직접 구현하거나 상속받을 필요가 없음 AOP (Aspect Object Programming : 관점 지향 프로그래밍) - 여러 모듈에서 ..
@media [only | not] 미디어 유형 [and 조건] * [and 조건] 반응형 : 디바이스 종류에 따라 웹페이지 크기가 자동적으로 조정되는 것 뷰포트 : 접속한 기기 화면에 맞춰 확대하거나 축소해 표시 속성 설명 width / height 뷰포트 넓이 / 높이 user-scalable 확대 / 축소 가능 여부 initial-scale 초기 확대 / 축소 값 minimum-scale 최소 확대 / 축소 값 maximum-scale 최대 확대 / 축소 값 가변 그리드 레이아웃 : 사이트의 모든 요소들을 상대적 크기로 지정해 브라우저의 크기에 따라 탄력적으로 보여주는 방법 - 가변 글꼴 : 글자 크기도 유동적으로 바뀌어야 함 (em과 rem을 주로 사용) - 가변 이미지 : 창의 넓이에 따라 이미..
Spring : 다양한 어플리케이션을 제작하기 위한 약속된 프로그래밍 틀 - JAVA 기반 - 코드의 경량화 - 개발 중 테스트가 쉬움 - 톰캣 사용 가능 - 국내 표준 프레임워크 - 다양한 어플리케이션을 쉽고 빨리 개발 가능 - 부품을 생성하고 조립하는 라이브러리 집합체 - 동적 웹사이트 개발 - 관점 지향 - 확장성 DI (Dependency Injection) - 객체를 직접 생성 하는것이 아니라 외부에서 만들어서 setter( ) 또는 construct( )에 대입 IOC 컨테이너 - 인스턴스의 생명주기 관리 - 추가적인 기능들 제공 - 코드의 처리과정을 갖는 독립적인 주체 : 알아서 컨트롤 가능 - 외부에서 제어 예시 - Calculation.java package com.java.ex; pub..
예제 1 ElTest.java package el.test; public class ElTest { private String[] productList = { "test1", "test2", "test3", "test4", "test5" }; private int num1 = 30; private int num2 = 50; public String[] getProductList() { return productList; } public void setProductList(String[] productList) { this.productList = productList; } public int getNum1() { return num1; } public void setNum1(int num1) { this..
EL (Expression Language) : 표현 언어 - 처음에는 JSTL의 부분으로 사용 되었으나 JSP2.0 부터는 기본 스펙에 포함 - 자바 빈즈 속성 값을 보다 쉽고 제약을 덜 받는 방법으로 사용하기 위해 나옴 기본 문법 - 표현 언어네는 "$"로 시작 - 모든 내용은 "{표현식}"과 같이 구성됨 - 표현식에서는 기본적으로 변수명 혹은 속성명, 메소드명 구조로 이루어짐 - 숫자, 문자열, boolean, null 도 올 수 있음 - 연산 가능 구성 요소 1. CORE : 공통 필수 기능 - for, switch 문등 자바 코드를 쓸 수 있게 해줌 2. XML : XML 문서 처리 관련 기능 3. L18N : 국제화 지원 관련 기능 4. SQL : JDBC를 이용한 DB처리 기능 태그 : 출력..
모델1 : JSP 페이지에서 화면을 보여주고 요청을 하게 되면 J네 페이지에서 직접 모델에 접근하여 처리 - 데이터 베이스 연동하는 JSP 페이지를 만들 때 디자인 부분과 데이터 베이스와 연동하는 로직 부분이 모두 같은 페이지에 코딩 모델2 : 디자인 부분과 로직 부분을 나누어서 개발하기 때문에, 디자이너는 디자인 부분만, 프로그래머는 로직 부분만 개발 가능 - 독립적 (디자이너는 JSP페이지, 프로그래머는 JAVA 클래스) MVC : Model, View, Controller - Model : 데이터 베이스와 연동하는 부분등의 로직 부분 - View : 화면 출력 - Controller : 위 두 부분을 적절하게 연결시켜주는 역할 #모델2는 Model과 View를 독립적으로 코디하기 때문에 Contro..
SQL DEVELOPER 1. 파일 다운로드 https://www.oracle.com/index.html Oracle | Integrated Cloud Applications and Platform Services Widget eliminates latency, saves 60% to 70% by running its “switchboard in the cloud” on Oracle. “We’re now capable of creating products and features for our customers that we would not have been able to do any other way.” Al Zlogar, founder and CEO www.oracle.com [Downloads an..
JDBC : Java DataBase Connectivity - 자바 어플리케이션에서 표준화된 데이터 베이스 접근 제공 - 각 데이터 베이스 접속에 대한 상세한 정보를 알 필요 없음 - 이론적으로는 개발된 어플리케이션에서 DB변경 시 JDBC 드라이버만 교체 프로그래밍 단계 연결 정보 - IP 주소 : 오라클이 설치된 컴퓨터의 IP주소 혹은 도메인 이름 - 포트 : 오라클에서 네트워크를 통한 접속을 처리하기 위해 실행되어 있는 리스너의 사용 포트 -> 기본값 : 1521 - SID : 오라클 인스턴스 이름 1. JBDC 드라이버 로드 Class.forName(“oracle.jdbc.driver.OracleDriver”); - 엑세스 DB인 경우 Class.forName(“sun.jdbc.odbc.Jdbc..
파일 업로드 기본 형태 enctype="multipart/form-data" enctype 속성 - 위 속성을 지정하지 않을 땐 데이더를 보내는데 GET과 POST 방식에 용량이 제한되어 있기 때문에 큰 파일 전송 불가 - 위 속성을 지정하면 데이터도 파일 형태로 넘어가고, 큰 용량의 데이터도 전송할 수 있게 되므로 파일 업로그가 가능 설정 1. http://www.servlets.com Servlets.com Home What's New? com.oreilly.servlet Servlet Polls Mailing Lists List Archives Servlet Engines Servlet ISPs Servlet Tools Documentation Online Articles The Soapbox "J..