Programming 90

[스프링의 정석] 개발 도구 소개

스프링의 정석 강의 수강을 위한 준비 사항입니다. * 자바의 스펙 1. SE : Standard Edition, 가장 일반적인 에디션 2. EE : Enterprise Edition, 서버용 3. ME : Micro Edition, 소형기기용 * 자바 개발 도구 : JAVA 11 버전부터 Oracle JDK가 Open JDK로 편입됨. 1. Oracle JDK 2. Open JDK * 통합개발 환경 : IDE (Integrated Development Environment) 1. STS3 : Eclipse + Spring 플러그인, STS4는 Spring boot 개발용이므로 3버전 다운로드 -> 다운로드 링크(https://github.com/spring-projects/toolsuite-distrib..

Programming/Spring 2021.10.13

[스프링의 정석] 스프링 프레임워크 (Spring Framework)

* Spring Framework 공부방법 1. 원리보다 사용법에 익숙해지는 것이 먼저 2. 자바 기본은 매일 복습 3. 이론보다 실습의 반복 4. 에러 메시지에 답이 있다 * Spring Framework의 역사 - 1995년 Java 출현 기반 - Applet : 작은 Application의 출현- Applet의 실패 -> Flash의 출현 - 1999년 EJB (Enterprise Java Beans) 출현 : 한국의 웹 성장기, 너무 복잡함 -> 스프링 출현 계기 - CGI : 멀티쓰레드 지원 X -> Java Servlet : 멀티쓰레드 지원 O -> JSP로 발전 - 2004년 스프링 1.0 출현 -> 웹 사이트 수 증가 -> 하지만 유지보수의 어려움 -> 프레임워크의 등장 - Spring, ..

Programming/Spring 2021.10.13

[JAVA] 변수의 초기화

자바의 정석 강의를 기반으로 작성했습니다. - 변수의 초기화 * 지역 변수는 반드시 수동 초기화 해야한다. * 멤버 변수 (IV, CV)는 자동초기화 된다. public class InitTest { int x; int y = x; // 인스턴스 변수 void method1() { int i; int j = i; // error 발생 , 지역 변수는 반드시 초기화를 해줘야 한다. } } - 멤버 변수의 초기화 - 클래스 변수의 초기화 시점은 클래스가 처음 로딩될 때 단 한번 - 인스턴스 변수의 초기화 시점은 객체가 생성될 때마다 초기화 - CV 먼저 이후 IV 초기화 - 자동 -> 간단 -> 복잡 순서로 초기화 1. 명시적 초기화 (=) class Car { int door = 4; // 기본형(prim..

Programming/Java 2021.10.11

[JAVA] 생성자 this(), 참조변수 this

자바의 정석 강의를 기반으로 작성했습니다. - 생성자 this() * 생성자에서 다른 생성자 호출할 때 사용 * 다른 생성자 호출시 첫 줄에서만 사용 가능 * 같은 클래스의 다른 생성자를 호출할 때 사용합니다. - 참조변수 this * 인스턴스 자신을 가리키는 참조 변수 * 인스턴스 주소가 저장되어 있습니다. * 인스턴스 메서드(생성자 포함) 에서 사용가능 * LV 와 IV 를 구별할 때 사용한다. * 모든 인스턴스 메서드에 지역 변수로 숨겨진채로 존재합니다. ( 선언을 하지 않아도 사용이 가능 ) Car(String c, String g, int d) { // 같은 클래스 내에선 this 생략 가능 // color는 iv, c는 lv color = c; gearType = g; door = d; Car..

Programming/Java 2021.10.11

[JAVA] 생성자(constructor), 자바 생성자

남궁성님의 자바의 정석 강의를 기반으로 작성했습니다. - 생성자 (Constructor) * 인스턴스가 생성될 때마다 호출되는 인스턴스 초기화 메서드 * 인스턴스 생성시 수행할 작업(IV(인스턴스 변수) 초기화)에 사용 - 생성자 규칙 * 이름이 클래스 이름과 같아야 합니다. * 리턴(return)값이 없습니다. 단, 생성자의 경우는 void를 붙이지 않습니다. 항상 반환값이 없기 때문입니다. * 모든 클래스는 반드시 한 개 이상의 생성자가 있어야 합니다. - 기본 생성자 (default constructor) * 매개 변수가 없는 생성자 * 생성자가 하나도 없을 때만, 컴파일러가 자동 추가 public class Constructor { public static void main(String[] arg..

Programming/Java 2021.10.11

[JAVA] 오버로딩(Overloading)

남궁성님의 자바의 정석을 기반으로 작성했습니다. - 오버로딩 (Overloading) : 과적하다. 한 클래스 안에 같은 이름의 메서드를 여러개 작성한 것. 대표적인 예로 Java의 println() 메서드가 있습니다. 아래의 코드처럼 println()이라는 이름으로 다양한 데이터 형에 따른 println() 로직처리를 할 수 있게 됩니다. void println() void println(boolean x) void println(int x) void println(float x) void println(double x) void println(String x) void println(Object x) void println(char x) void println(char[] x) void println..

Programming/Java 2021.10.11

[JAVA] 자바의 메서드(Method)

남궁성님의 자바의 정석 강의를 기반으로 작성했습니다. - 메서드란 작업단위로 문장을 묶어놓은 것 - 메서드와 함수의 차이 * 메서드는 반드시 클래스 안에 들어가있어야 하지만 함수는 클래스에 독립적입니다. 근본적으로 똑같긴 합니다. - 메서드의 장점 * 코드의 중복을 줄일 수 있습니다. * 코드의 관리가 쉽습니다. * 코드를 재사용할 수 있습니다. * 코드가 간결해서 이해가 쉬워집니다. - 메서드 작성 * 반복적으로 수행되는 여러 문장을 메서드로 작성 * 하나의 메서드는 한 가지 기능만 수행하도록 작성 - 메서드 구성 : 선언부 + 구현부 반환타입 메서드이름 (타입변수명, 타입변수명, ...) // 선언부 { // 메서드 호출시 수행될 코드 // 구현부 } int add (int a, int b) { in..

Programming/Java 2021.10.08

[JAVA] 클래스 변수와 인스턴스 변수

남궁성님의 자바의 정석 강의를 기반으로 작성했습니다. - 선언 위치 * 클래스 영역 : 인스턴스 변수, 클래스 변수 * 메서드 영역 : 지역 변수 - 클래스 변수 : 공통적인 사항 - 인스턴스 변수 : 개별적인 사항 예. 카드에서 공통적인 사항은 카드의 폭, 높이, 두께 등, 개별적인 사항은 카드의 문양, 숫자 등이 있습니다. 이를 코드화하면 아래와 같습니다. Class Card { // 개별 속성 : 인스턴스 변수 String kind; // 카드의 무늬 int number; // 카드의 숫자 // 공통 속성 : 클래스 변수 static int width; // 폭 static int height; // 높이 } * 위 코드를 사용하는 방법 Card c = new Card(); // 객체를 생성 c.k..

Programming/Java 2021.10.08

[JAVA] 자바의 클래스

남궁성님의 자바의 정석을 기반으로 작성했습니다. - 클래스의 정의 * 설계도 * 데이터 + 함수 * 사용자 정의 타입 1. 변수 : 하나의 데이터를 저장할 수 있는 공간 2. 배열 : 같은 종류의 여러 데이터를 하나로 저장할 수 있는 공간 3. 구조체 : 서로 관련된 여러 데이터 (종류 관계 X)를 하나로 저장할 수 있는 공간 4. 클래스 : 구조체 + 함수, 즉 서로 관련있는 데이터 변수들과 관련있는 함수들의 묶음 // 비객체지향적인 코드 int hour = 12; int minute = 25; int second = 30; // 객체지향적인 코드 class Time { int hour; int minute; int second; } Time t = new Time(); t.hour = 12; t.mi..

Programming/Java 2021.10.08