웹 개념
인터넷에 연결된 사용자들이 서로의 정보를 공유할 수 있는 공간 ;
소켓 : 프로그램끼리 통신할수있도록해주는 링크 또는 연결부?
스트림 : 데이터 의 입출력 처리의 흐름?
클라이언트 서버
클라이언트 서버에 요청을 하는측
서버 클라이언트로부터 요청을 받는측
자바 (컴파일러 , 인터프리터)
인터프리터는 고급 언어로 작성된 프로그램을 한 줄 단위로 받아들여 번역하고,
번역과 동시에 프로그램을 한 줄 단위로 즉시 실행시키는 프로그램입니다
컴파일러는 고급 언어로 작성된 프로그램 전체를 목적 프로그램으로 번역한 후,
작업을 통해 컴퓨터에서 실행 가능한 실행 프로그램을 생성합니다.
참조형변수
많은값을 가지고 있기 때문에 주소 값을 가지는 자료형
기본형변수
논리형, 문자형, 정수형, 실수형이 있다. 계산을 위해 실제 값을 저장.
== : 참조비교 두 객체가 같은 메모리 공간을 가리키는지 확인
equals : 객체의 값이 같은지 데이터나 내용이 같은지 비교
1. 클래스변수, 인스턴스 변수, 지역변수 scope와 정의
scope - 지역변수 일정범위 안에서 사용 ex) 메서드 내부에 선언
- 멤버변수 클래스 내부에서 전체 사용 = 인스턴스 변수
- 클래스변수 : static변수 사용 이유 공유되는 변수로 메모리에 먼저 올라감
object (객체)
- 현실세계에서 사용하고 있는 모든물체
객체지향 (oop)
- 객체들끼리 고유한 기능을 수행하면서 다른 객체들과 상호작용하는
객체들을 유기적으로 연결하여 프로그래밍 하는 것을 말합니다.
절차 지향 프로그래밍
절차 지향 프로그래밍은 프로세스가 함수 단위로 순서대로 진행되는 것을 말합니다.
접근 제한자
범위 순위 : public -> private
private : 정의된 속성은 외부에 노출시키지 않고 자신의 클래스에서만 사용하기 위해 정의
pubilc : 모든 클래스에서 접근 가능 제한없음
=============================================================
2. 배열과 list의 차이점
배열 : 고정길이
list : 가변길이
-------------------------------------------------------------------------------------------------
4. 추상화, 상속, 다형성의 개념에 대해 서술(코드 필수)
-추상화
프로그래밍에서 객체들의 공통적인 속성과 메서드를 뽑아내는 작업
또는
복잡한 자료, 모듈, 시스템 등으로부터
핵심적인 개념 또는 기능을 간추려 내는 것(공통점을 뽑아내는 것)
car라고 하는 추상적 표현 내에 speed gear color라고 하는 구체적 표현이 있다.
-캡슐화
private 접근제한자를 사용해서 클래스 내부의 메서드를 통해 조작 가능하게 하는 것
1보호
2 노출부 최소화
사용자한테 가급적이면 보이는 부분을 줄여라
실제 사용자가 훨씬 쉽게 사용할 수 있다
(사용부가 간단하게, 작동원리는 가려라- 사용자의 이해를 빠르게 한다)
- 정보 은닉의 효과
-상속(extends)
상위클래스로부터 변수와 메서드를 사용할 수 있게 된다
장점. 상속이 필요한 이유는 코드의 중복을 없애기 위함입니다.
다형성
자식객체를 부모 클래스 타입 변수에 담아 제어하는 것
상속관계가 성립해야하고
부모타입의 참조 변수는 자식 객체 메서드에 접근 불가
자식 타입으로 형 변환하여 메서드 사용 가능
이유 : 다형성을 위해서라고 생각한다. 다형성은 상속받은 클래스 또는 인터페이스의 메서드를 재정의하여
서로 다른 행동을 만들 수 있다. 상속을 통해 상위 클래스의 타입으로 통일한 후 하위 클래스들을 하나의 타입으로 관리할 수 있다.
이를 사용해서 변경에 유연한 코드를 만들 수 있다.
-----------------------------------------------------------------------------------
5. 이너클래스
클래스 안에 다른 하나의 클래스를 정의하는 것
사용이유 캡슐화를 하기 위해 특정 멤버 변수를 private 하게 사용할 수 있다.
---------------------------------------------------------------------------------------------
6. 참조타입의 형 변환, 기본 타입의 형 변환(코드 필수)
--------------------------------------------------------------------------------------------
7. object 정의
자바 API의 모든 클래스와 사용자가 정의한 모든 클래스의 최상위 클래스이다
------------------------------------------------------------------------------------------------
8. 추상 클래스 (abstract)
추상메서드를 포함할 수 있는 클래스
일반 맴버변수 메서드 정의 가능
자식클래스는 상위 클래스의 추상 메서드를 오버 라이딩해야 함
공통된 내용(필드나 메소드)들을 추출하여 통일된 내용으로 작성하도록 규격화
---------------------------------------------------------------------------------------------------------
9. 인터페이스 (interface)
-일종의 추상 클래스인데 추상화 정도가 높다.
- 실제 구현된 것이 전혀 없는 기본 설계도. (알맹이 없는 껍데기)
추상메서드랑 상수 무조건 public를 사용
버전 8부터 기본 메서드 사용 가능
--------------------------------------------------------------------------------------------------
10 오버로딩 오버 라이딩
오버 로딩
같은 이름의 메서드를 여러 개 가지면서 매개변수의 유형과 개수가 다르도록 하는 기술
--------------------------------------------------------------------------------------------------------
오버 라이딩
상속관계에있는 클래스 간의 같은 이름의 메서드를 재정의 하는 것
상위 클래스가 가지고 있는 메소드를 하위 클래스가 재정의 해서 사용한다
database
1. information, data, database, dbms 정의
infomation = 특정한 목적에 맞게 데이터를 의미 있게 끌어낸 것
data = 정보의 값
database = 데이터를 저장한파일들의 집합체
dbms = 데이터를 관리하는 시스템을 제공해주는 소프트웨어
mysql,또는 oracle
----------------------------------------------------------------------------------------------------------
2. DML. DCL, DDL 각각의 정의와 예시 3가지 이상 작성
- DDL DB를 구축하거나 수정할 목적으로 사용하는 언어
CREATE: SCHIMA,DOMAIN,VIEW,INDEX를 생성
ALTER: Table대한 정의를 변경하는데 사용
DROP: SCHIMA,DOMAIN,VIEW,INDEX를 삭제
무결성
개체무결성 : 아무리 많은 개체가 있더라도 원하는 개체를 알수있어야한다
도메인무결성 : 필드에 하나의 필드만을 가져야한다.
참조무결성: 외래키 값은 NULL이거나 참조하는테이블의 기본키와 같은 값을 가져야한다.
- DCL 데이터 제어 언어
데이터의 무결성 , 보안 및 권한 제어, 회복 등을 하기 위한 언어
트랜잭션은 데이터베이스 시스템에서 병행 제어 및 회복 작업 시
처리되는 작업의 논리적 단위이다.
-COMMIT : 명령에 의해 수행된 결과를 실제 물리적 디스크로 저장하고
데이터 베이스 조작 작업이 정상적으로 완료되었음을 관리자에게
-ROLLBACK : 데이터베이스에서 업데이트 오류 발생 시 이전 상태로 되돌리는 것
-GRANT : 데이터베이스 사용자에게 권한을 부여함
-REVOKE : 데이터베이스 사용자의 권한을 취소함
- DML 데이터 조작언어
데이터처리를 할 수 있게 해 주는데 구로 사용자와 DBMS 간의 인터페이스를 제공
-SELECT : 테이블에서조건에맞는 튜플을 검색
-INSERT : 테이블에서 새로운 튜플을 삽입
-DELETE : 테이블에서 조건에 맞는 튜플을 삭제
-UPDATE : 테이블에서 조건에 맞는 튜플의 내용을 변경
-------------------------------------------------------------------------------------
3. 데이터 무결성 정의
데이터의 정확성과 일관성을 유지하는것
개체 무결성 : 아무리 많은 개체가 있더라도 원하는 개체를 알 수 있어야 함
도메인 무결성: 필드에는 하나의 필드만을 가져야 한다.
참조 무결성 : 외래 키 값은 null이거나 참조하는 테이블의
기본키와 같은 값을 가져야 한다.
4. select, from, orderby, group by, having, where의 작업순서
from -> where -> group by -> having -> select -> order by
5. transaction, lock 설명 및 정의
transaction : 데이터베이스 시스템에서 병행 제어 및 회복 작업 시
처리되는 작업의 논리적 단위이다.
look :
6. selfjoin, innerjoin, outerjoin(right, left), fullouterjoin
selfjoin : 자신테이블을 참조하는 것
innerjoin : 교집합인 데이터를 참조하는것
outerjoin(right, left) : 외부 조인은 내부 조인 조건문에 만족하지 않는 행을 표시해주는 조인.
- reft : 내부조인조건문을 만족하고 왼쪽 테이블의 모든 데이터를 포함하는 조건
-right : 내부조인조건문을 만족하고 오른쪽 테이블의 모든 데이터를 포함하는 조건
fullouterjoin
1. HttpServletRequest와 HttpServletResponse의 정의 및 설명
요청응답을 추상화한 객체
응답은 플러싱이후 업데이트 안됨
2. init(), service(), destroy() 정의 및 라이프사이클
Servlet 생명주기
요청이 오면, Servlet 클래스가 로딩되어 요청에 대한 Servlet 객체가 생성됩니다.
서버는 init() 메서드를 호출해서 Servlet을 초기화합니다.
service() 메소드를 호출해서 Servlet이 브라우저의 요청을 처리하도록 합니다.
service() 메소드는 특정 HTTP 요청(GET, POST 등)을 처리하는 메서드 (doGet(), doPost() 등)를 호출합니다.
서버는 destroy() 메서드를 호출하여 Servlet을 제거합니다.
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
4. cookie, session의 정의 및 차이점, 사용방법
쿠키 : 웹브라우저가 보관하는 데이터
세션 : 서버에거 사용자의 정보를 보관함
쿠키랑다르게 서버에서만 접근이 가능 보안이 좋음
캐시 : 사용자(client)가 웹 사이트(server)에 접속할 때, 정적 콘텐츠(이미지, JS, CSS 등)를 특정 위치(client, network 등)에
저장하여, 웹 사이트 서버에 해당 컨텐츠를 매번 요청하여 받는 것이 아니라, 특정 위치에서 불러옴으로써 사이트 응답 시간을 줄이고, 서버 트래픽 감소 효과를 볼 수 있다.
5. 상태를 가질 수 있는 객체의 가용범위 및 정의
---------------------------------------------------------------------------------
framework
1. 프레임워크의 정의 및 장점
프로그램을 만들기위한 기본 틀
장점 프로그램을 편리하고 빠르게 만들 수 있다.
코드의 재사용성이높다.
안정적이면서 유지보수가 쉽고 확장성이 뛰어나다.
라이브러리와의 차이점
라이브러리는 필요한것을 자유롭게 가져와서 쓰는 것
프레임워크는 틀(ioc)에 맞춰서 사용하는것
---------------------------------------------------------------------------------------
2. MVC 패턴 설명, mvc 구현하는 framework 종류 및 설명
spring MVC 패턴에서 과정
mvc란?
애플리케이션, 프로젝트를 구성할 때 그 구성요소를
세가지의 역할로 구분한 패턴
model : 프로그램의 내부 상태(실질적인 기능을 담당)
view : 사용자의 인터페이스
Controller : 데이터와 비즈니스 로직간의 상호작용
model1 : 웹에서 요청하면 jsp에서 응답하며
jsp에서 비즈니스로직, view 모두 처리함
model2 : 비즈니스로직을 처리하는 컨트롤러(servlet)와
view(jsp)를 분리
웹에서 요청을받아 view로 보내줄 것인지
Model로 보내줄것인지 정함
3. DI, IOC 정의 및 설명
DI : dependency injection :
클래스 내 필요한 의존객체를 외부에서 주입해주는 기술
(DI란 IOC Container가 개발자 대신 xml파일에 정의된 대로 Bean객체를 생성하고 의존성을 대신 주입하는 것을
의미한다.)
장점 : Di 방식을 이용하여 모듈간의 결합도를 낮추어준다.
Di를 사용하면 클래스를 수정했을 때 다른 클래스를 수정해야 하는 상황을 막아준다.
주입하는 방식 3가지
spring(프레임워크)에서 bean으로 등록하는 방법(3가지)을 아는지 확인
annotation @
xml : setter(properties), constructor
java-config
bean이란?
스프링 컨테이너 안을 구성하는 객체(스프링이 관리하는 객체)
- ioc
제어의 역전이라고 하며
스프링 프레임워크가 컨테이너 안의 객체의 생성과 소멸을 개발자를 대신해준다.
(사용자가 직접 객체를 생성하고 관리하던 것을 spring의 IOC Container가 대신해준다는 말이다)
- 톰캣
자바 클래스를 이용해 웹서비스를 제공
자바 서버 페이지 jsp와 자바 서블릿이 실행할 수 있는 환경을 제공
-----------------------------------------------------------------------------
4. ORM 정의 및 설명
종류 mybatis , hibernate
5. AOP 정의 및 설명
6. auto-wiring, auto-weaving 정의 및 설명
8.
스프링이란?
스프링 자바의 웹 프레임워크이며
자바 기술들을 쉽게 사용할 수 있게 해 주는 오픈소스 프레임워크
전자 정부 프레임워크
- 정부에서 지정한 스프링 프레임워크
- 개발자들의 개발방식이 다 다르기 때문에 개발 도중에 관두거나 개발이
끝나면 유지보수가 힘들어지는데 이러한 문제점을 해결하고자 정부에 사
전자정부 프레임워크라는 한국용 프레임워크를 만들게 됨
웹 개발의 유지보수를 하기 쉽게 사용함
Maven이 무엇인가?
자바 프로젝트 빌드 도구
장점 라이브러리 관리를 용이하게 해 준다.
9.STS가 무엇인가?
이클립스 기반 스프링 애플리케이션을 개발하기 위한 개발 환경을 의미하며 오픈소스이다.
10 jdbc
DB에 접근할 수 있도록 Java에서 제공하는 API이다.
모든 자바의 데이터 엑세스 기술의 근간이됨
엔티티 클래스와 어노테이션을 이용하는 최신 ORM 기술도 내부적으로는 DB와의 연동을 위해 사용
Plain JDBC API의 문제점
쿼리를 실행하기 전과 후에 많은 코드를 작성해야 한다. EX) 연결 생성, 명령문, ResultSet 닫기, 연결 등
데이터베이스 로직에서 예외 처리 코드를 수행해야 한다.
트랜잭션을 처리해야 한다.
이러한 모든 코드를 반복하는 것으로, 시간이 낭비된다.
그래서 머다?
jdbc template를 쓴다
위와 같은 문제점들을 제거한 형태의 Spring에서 제공하는 class이다.
전형적인 Spring JDBC 접근 방법이고 가장 인기가 좋다.
Spring jdbc - Connection 열기 닫기
Statement 준비 닫기
Statement 실행
ResultSet Loop 처리
-DAO패턴 데이터 접근객체
비즈니스 로직과 데이터 엑세스 로직을 분리 하는것
Datasource = 컨넥션 풀링을 지원
11 Ajax
동기 : 화면을 이동할때 전체화면을 갱신
비동기 : 일부 화면만 갱신하는것
12. was
- WAS (Web Application Server)
- 동적 컨텐츠를 제공하기 위해 만들어진 애플리케이션 서버 (DB조회, 로직처리가 요구되는 컨텐츠)
- JSP,Servlet 구동 환경 제공
동작 프로세스
1. 웹서버로부터 요청이 오면 컨테이너가 받아서 처리
2. 컨테이너는 web.xml을 참조하여 해당 서블릿에 대한 쓰레드 생성하고 httpServletRequest와 httpServletResponse 객체를 생성하여 전달한다.
3. 컨테이너는 서블릿을 호출한다.
4. 호출된 서블릿의 작업을 담당하게 된 쓰레드(2번에서 만든 쓰레드)는 doPost()또는 doGet()을 호출한다.
5. 호출된 doPost(), doGet() 메소드는 생성된 동적 페이지를 Response객체에 담아 컨테이너에 전달한다.
6. 컨테이너는 전달받은 Response객체를 HTTPResponse형태로 바꿔 웹서버에 전달하고 생성되었던 쓰레드를 종료하고 httpServletRequest, httpServletResponse 객체를 소멸시킨다.
대표 : Tomcat, Jeus, JBoss
===========================
자바 설정
1. 환경변수
2. JDK 1.8 설치
3. 이클립스 나 STS 설치
4. Oracle , Mysql + / spring jdbc, mabatis = db프레임워크
+설정
작성한 내용 바탕으로 구두면접 질문 내용
값에 의한 참조와 주소 참조에 대한 개념을 정확하게 알고 있는지 확인
group by, having, where 세 가지 개념을 정확하게 알고 있는지 확인
group by : 데이터들을 원하는 그룹으로 나눌 때 사용
having : WHERE 절에서는 집계 함수를 사용 할 수없으므로,
HAVING 절은 집계함수를 가지고 조건비교를 할 때 사용한다.
HAVING 절은 GROUP BY절과 함께 사용이 됨.
where : 자료를 검색할 때 제한을 둬서 원하는 자료를 뽑을 수 있다.
servletContainer내에서 요청이 들어올 때 과정을 정확하게 설명하는지 확인
프로젝트