참조타입 개요 기본타입에는 '주소값'이라는 개념이 없다. 기본타입의 값은 모두 리터럴. 기본타입에서의 ==, != 연산은 '값'을 비교하지만, 참조타입에서는 '동일한 객체를 참조하는지' 를 비교. (같은 '주소'를 가지고 있는지) ------------ 레
main(String[] args) Argument, Parameter 메소드 선언시, Argument ----> "전달인자" Parameter ---> "매개변수" main메소드 선언시 String[] 배열은 크기가 0 인 배열로 자동 생성됨. Null이 아님!
열거타입 한정된 값만을 갖는 데이터 타입 (변수에 저장할 수 있는 값을 제약(한정) 하는 것) EX ) '계절' 이라는 변수에는 '봄' '여름' '가을' '겨울' 이라는 값만 가질 수 있도록 범위를 제약(한정) 함. --> 데이터상의 오류가 없도록 도와줌. -한정된
C : 모든 게 함수(function)로 이루어짐OOP : Object - Oriented ProgrammingDDP : Data - Driven ProgrammingEDP : Event - Driven ProgrammingAOP : Aspect - Oriented P
클래스로부터 객체를 생성할 때 생성된 객체의 필드를 초기화 해주는 역할을 하는 것.생성자 이름 == 클래스 이름과 같아야 함.특수한 메소드(Special method)Default Constructor (기본생성자)클래스에 생성자가 선언되어 있지 않을 때, 자바 컴파일
라이브러리(API용) : 자체적으로 실행X. 다른 클래스에서 이용할 목적으로 만듦실행 클래스 : main() 메소드를 가지고 있는 클래스. 실행할 목적.필드 (정확히는 인스턴스 필드. 클래스 영역에 선언한 변수는 더이상 변수가 아님. '필드'라고 한다)생성자 >> ne
싱글톤 객체 : 이 클래스로부터 힙 영역에 단 한 번만, 단 하나의 객체만 생성 가능.힙에 있는 모든 객체가 보관할 용도로 쓰임. 대표적으로 환경설정.환경설정 정보를 필드로 들고있는 싱글톤 객체가 있다.이 설정 정보는 하나의 객체에만 있어야 함. 여러 객체에 있으면 내
Front-end : 화면 구현하는 부분HTML5 (HTML5, CSS3, ES5/ES6)Back-end : 화면은 구현하지 않지만, 가장 핵심이 되는 비즈니스 로직 구현하는 부분Web Server, WAS(Web Application Server), Servelet/
access 는 annotation의 속성 지정.PUBLIC은 Default로 지정되므로 생략 가능.main()을 static으로 호출하는 이유? main() = Startup Point. Entry Point. static 키워드가 없으면 인스턴스필드와 같아짐. >>
프로그램에 추가적인 정보를 제공해주는 메타데이터(metadata)컴파일러에게 코드 작성 문법 에러 체크하도록 정보 제공소프트웨어 개발 툴이 빌드나 배치 시 코드를 자동 생성하게 정보 제공 (대표적으로 lombok)실행 시(런타임 시) 특정 기능 실행하도록 정보 제공예:
문자집합(character set) == Code pageMS OS --> MS949 --> 65001(UTF-8)cd:> chcp - change code pagechcp 65001 --> UTF-8chcp 949 --> MS949chcp 65001정적인 서비스 >>
열거1\_클릭열거상수는 하나하나가 객체이다. 클래스와 비슷함.클래스는 외부에서 new 로 객체 생성해야하지만, 열거상수는 자체적으로 생성자를 호출함.매개변수가 없고, 필드가 없어서 인지하지 못했을 뿐 컴파일러가 default 생성자 생성해줌.필드, 메소드도 호출할 수
참조변수에 들어있는 객체의 타입을 검사하고자 할 때 쓴다.부모 타입이면 모두 자식 타입으로 강제 형변환 할 수 있는 것이 아니다.타입을 알아야(자식타입이 뭔지 알아야) 가능.\->> ClassCastException 예외 발생.먼저 자식 타입인지 확인 후 강제 형변환
OOP 첫시간 강의록\_클릭상속없이는 다형성도 존재할 수 없다!상속 대상 : 부모의 필드와 메소드(생성자, 정적멤버 등 X.부모 클래스의 private 필드, 메소드는 제외.부모 클래스가 다른 패키지에 있을 경우, default 필드, 메소드 제외.)정적멤버는 클래스
java : 자바소스 폴더resources : 프로그램 실행에 필요한, 소스가 아닌 파일 폴더webapp : index.jsp > 웹 어플리케이션 만드는 요소기술 중 하나. 동적으로 응답 처리해서 동적으로 데이터를 만들어내서 데이터를 출력할 웹 어플리케이션들이 모여있는
인터페이스 interface 인터페이스를 사용하면 코드를 객체에 종속되지 않게(loose coupling. 약한 결합) 사용할 수 있다. 코드가 객체에 강하게 종속된 형태를 tight coupling(강한 결합) 되었다고 함. 인터페이스 접근제한자는 public, d
HyperText Transfer Protocol. 웹에서 쓰는 공식 통신규약웹 브라우저(클라이언트)에서 WAS(서버)에 request 하면, WAS 에서 response.한 번의 request-response가 오고가고나면 둘의 연결(connection)을 끊음=>
HTML5 요소기술HTML : HyperText Markup Language\-->> 웹 브라우저에서 눈으로 보이는 화면을 만드는 언어CSS3 : Cascading Style Sheet\-->> HTML 문서를 스타일(장식) 하는 기술Javascript : 웹 브라우저
서블릿 naming convention / naming rule 확인하기org.bitcamp.myweb.servlet.TempServlet.class=> 별칭 : name항목(보통 서블릿 클래스 이름과 동일하게)"TempServelet"(별칭)=> URL mapping
서블릿의 인스턴스가 init으로 초기화되기 전에 필요한 작업을 할 수 있는 선처리 작업과 destroy 메서드로 제거된 후에 필요한 작업을 할 수 있는 후처리 작업이 가능서블릿의 LifeCycle 메서드인 init 메서드가 호출되기 전에 수행되는 선처리 작업 메서드에
자바 API에서 제공하지 않는 예외.사용자정의 예외를 정의할 때,비즈니스 로직에 정의되어있어 예상 가능한 예외는 > Checked Exception (Exception 상속)예상 불가능한 예외는 > Runtime Exception 으로 만들어야 한다.대부분 Checke
클래스, 인터페이스, 메소드 만들 때 사용.참조타입에 제네릭 기호(<> 다이아몬드 기호) 가 들어가면 제네릭타입이라고 부른다.< > 사이에는 타입 파라미터 작성. >> '타입'을 받는 '매개변수'!!제네릭은 기본타입은 해당없음.참조타입을 일반화 한다.컴파일
매개타입과 리턴타입으로 타입 파라미터를 갖는 메소드.리턴타입 앞에 < > 기호 추가하고, 타입 파라미터 기술.public void set(T t){ ;; } 위의 메소드는 리턴타입 앞에 < > 없으므로 제네릭메소드라고 할 수 없다. 제네릭 클래스를 매개변수로
Block level elements(tag) : 뷰포트의 한 행을 온전히 차지함.따라서 세로(위->아래)로 배열됨.예>> <p>, <div>, <h>, <ul>, <ol>, <form> 등Inline level elements(tag)
서블릿 초기화 접근은 서블릿config 객체 필요했듯이우리가 공유가능한 모든 초기화파라미터를 접근하려면 서블릿context객체가 필요하다context param 은 공유되는 영역이 web application 전역에 대해 공유됨.서블릿 내에서는 init param.Se
람다식 강의록 1익명구현객체 오버라이딩 메소드 블록에서든, 람다식의 중괄호 블록에서든클로저(생명주기가 다른 두 변수간에, 생명주기가 긴 쪽에서 생명주기가 짧은 변수를 사용하려는 현상) 현상 발생 \--> final 상수 만들어 해결함클로저클래스블록 안에 선언된 또다른
매개값과 리턴값이 있는 applyXXX() 메소드를 가짐매개값을 리턴값으로 매핑(타입변환)상속관계에서 일어나는 promotion, casting이 아니라,비상속관계에서의 타입 매핑 (ex. 배열을 List로 매핑)데이터 전처리(preprocessing)에서, 비 상속관
Log4j / Log4j2 log level 정리 =================================================================================maven(web.xml)에
메소드를 객체 밖으로 빼낸 것이 함수. 즉 함수는 non-oop언어이다. 자바에서 객체소속없이 함수 단독으로 존재할 수 없으므로, 인터페이스를 implements하는 익명구현객체를 생성한다람다식은 익명함수 객체를 생성한다고 하지만 정확히는 익명구현객체즉 인터페이스를 구
librarydependency 추가하면 library 자동으로 추가함. 우리가 우리의 로직을 우리 마음대로 만들면, 이 프로그램의 제어권은 개발자에게 있다.개발자가 제어권을 가지면서 남이 만든 클래스, 인터페이스 사용하면 library.framework제어권이 개발자
패키지: javax.sql.DataSource interface이 인터페이스의 구현객체는, WAS가 만들어 제공이 DataSource 객체는 아래의 기능을 제공:Connection Pool 기능을 제공개발자: 아래의 2가지 작업을 해야 함.(1) DataSource 설
Presentation LayerPresentation Logic (화면 로직)HTML, JSPBusiness LayerBusiness Logic 구현(예: 계좌이체)Servlet 객체Persistence(DB) LayerPersistence Logic(DB Logic
inline방식 : 태그에 직접 JS코드 적용가능internal방식 : <script> ~ </script>태그 사이에 JS코드 적용External방식 : \~\~~.js외부파일 만들고, HTML 문서에서는, 아래 태그를 통해 링크시켜 수행.
FrontController PatternCommand PatternDTO patternDAO patternVO Pattern화면로직과 비즈니스 로직과 영속성 로직(db로직)을 확실히구분해서 구현 ==> 이러한 패턴 총칭해서MVC Patter ==Model 2 Arch
스트림의 종류에는 입력스트림, 출력스트림이 있다.스트림에는 데이터가 흘러간다.내가 코딩하는 프로그램이 있고, 내가 입력/출력 수행하는 부분이 있다.이 때, 내가 만드는 프로그램을 기준으로프로그램 밖에서 -> 프로그램 안으로 데이터가 흘러 들어오는 흐름이 입력스트림.표준
세션이란, 서버(WAS)와 클라이언트(브라우저)간의 지속적인 연결을 의미.즉, 사용자의 상태정보를 서버에서 관리하는 메커니즘.기본적으로, web이 사용하는 통신 프로토콜인 HTTP/1.1 은한 번의 요청(Request)에 대해서, 한 번의 응답(response)이 전송
함수 표현식을 선언하여 변수에 할당하는 방법.변수를 함수명으로 사용한다.함수 선언 전에 함수 호출 불가능.무명 함수가 먼저 오든, 기본 함수가 먼저 오든함수 호출구문이 함수 선언부보다 먼저 호출되면 기본 함수를 찾고,함수 선언부 이후에 호출되면 익명함수를 찾는다.js
힙에 있는 객체-->파일로 저장메모리에 생성되어있는 객체 --> 데이터로 변환 이 객체를 생성한 클래스의 전제사항 객체를 생성한 클래스는, 반드시 Serializable 인터페이스를 implements 해야한다!(내부에 멤버, 메소드가 하나도 없는 Tag Interfa
브라우저 객체 모델. 웹 브라우저의 각종 요소를 객체로 표현문서 객체 모델. 웹 문서의 각종 요소(태그)를 객체로 표현.개발자 도구의 elements 탭이 보여주는 것이 현재 문서의 DOM tree이다.돔트리는 태그, 속성, 컨텐츠로 이루어짐.자바스크립트 프로그램 전체
jsp와 servlet(합쳐서 web component) 은 동적인 웹 애플리케이션 개발에 사용.(=동적이라는 뜻은 매번 다르게 반응한다는 뜻)jsp는 자동으로 서블릿으로 변환되어 실행된다. 따라서 jsp가 서블릿이라고 해도 틀린말이 아니다.(jsp컨테이너가 변환시키고
스프링 개발환경 구축방법 3가지Eclipse for Java ---> Spring MVC 환경으로 변경\-Web개발환경이 없음. 따라서 플러그인으로 추가해줘야 함 help-marketplace - popular에서 Eclipse Enterprise java insta
javax.sql.DataSource의 구현객체 제공
0 > 1 > 2 > 3 > 4 (범위값 : 0~4)readyState 의미\- 0 XHR객체를 생성하고, 초기화가 안 된 상태 (new)\- 1 XHR객체를 초기화한 상태 (open)\- 2 XHR객체로 요청을 보낸 상태
MyBatis 도 하나의 독립된 프레임 워크이다.MyBatis를 SQL Mapper FrameWork 라고 함.파일명 : mybatis-config.xml파일명은 개발자가 짓기 나름이지만, 통상적으로 위와 같이 만듦.이 설정파일은, 반드시 classpath(build
Request Mapping > new Request > xxxController.method() >Model생성 >View호출(JSP) with Model > JSP 동적인 화면을 생성해서 응답으로 클라이언트 전송유스케이스 하나하나마다 Request URI를 정함 (
자바빈즈 클래스는 필드가 아니라, 프로퍼티 property를 갖는다고 표현. 공유영역에 바인딩된 속성을 이용하거나, 만약 바인딩된 속성이 없다면 바인딩해주는 역할을 모두 수행함. setPorperty는 반드시 useBean 태그와 함께 사용된다.
String hash = BCryptPasswordEncoder.encode("평문암호")(1) BVryptPasswordEncoder 클래스를 Beans container에 Bean으로 등록(2) 스프링에서는 BCryptPasswordEncoder 객체 주입 시그널을
컨트롤러의 메소드 = request handler그 request handler가 호출되기 전에 수행되는것이 prehandle (front controller와 controller 사이)model data, view의 이름을 반환하고, view가 호출되기 전에 수행되는
동일한 기능을 수행하더라도, 영속성계층은 영속성계층에 맞게, 비즈니스계층은 비즈니스계층에 맞게 메소드 명을 지어야 함. (똑같이 목록을 조회하는 메소드여도, db에서는 select, 비즈니스계층에서는 getList. 똑같이 등록을 하는 메소드여도, db에서는 inse
쿠키(Cookie) 아주 작은 데이터 조각(문자열) 이 쿠키는 Request 와 Response 메시지의 Header에 보관되어 전송/수신 됨. 쿠키는 웹 브라우저의 PC에 파일 형태로 저장(보안위협) (세션은 WAS의 메모리에 저장) 웹브라우저는 수신한 쿠키를 파일
AOP 횡단 관심사 = cross-concerns = Aspect 비즈니스로직을 가로로 배열하고, 이 비즈니스 로직을 횡단하면서 핵심 로직은 아니지만 시스템 로직의 완전성을 위해 반드시 써야하는 기능들 Aspect : 추상명사로, 횡단 관심사를 의미 (logging,