[ SSAFY 6기 전형 일정 ]

  • 5/14(금) 자소서 마감
  • 5/22(토) SW적성진단
  • 6/1(화) SW적성진단 결과 발표
  • 6/7(월) Interview 일정 공지
  • 6/14(월)-19(금) 면접 진행 - 멀티캠퍼스 역삼에서 응시함
  • 6/28(월) 최종 결과 발표
  • 7/7(수) 싸피 시작

 

[ 자소서 ]

5기에도 지원을 했었는데 자소서 문항은 동일한 것 같습니다.

  1. SW에 관심을 갖게 된 계기와 향후 어떤 SW 개발자로 성장하고 싶은지, 이유는 무엇인지 SW 관련 경험(취미, 학습, 사용경험 등)을 토대로 작성 바랍니다. 
  2. 취업을 목표로 했던 활동(회사 입사지원 및 면접 참석, 인턴 및 직무체험, 취업을 위한 학습 및 자격증 취득 등) 중에 가장 기억에 남는 경험을 기술하고, 이를 통해 배우고 느낀 점 등을 작성해 주시길 바랍니다.

SSAFY는 채용이 아닌 교육기관이기 때문에 코딩을 잘한다 보다는 열심히 하고 배우겠다는 자세를 강조해야 됩니다. 저는 SSAFY의 인재상인 논리적 사고, 열정, 학습의지에 키워드를 녹여 자소서를 작성했습니다. 

 

[ SW 적성진단 - CBT ]

수리/추리영역CT(Computational Thinking)으로 나누어져 있습니다.

준비를 하고 싶으시다면 GSAT의 수리/추리 파트를 풀어보시는 걸 추천드립니다.

CT의 경우 기출문제집도 없고 서약서도 작성하기 때문에 자료를 구하기 힘듭니다.

알고리즘잡스 유튜브에 올라온 맛보기 문제 정도 풀어보는 것을 추천드리고 다른 문제집이나 강의를 사서 푸는 건 추천드리지 않습니다. 차라리 알고리즘 공부를 하시는 걸 추천드려요...  특히 강의 절대 사지 마세요 돈 버립니다.

 

저는 5기에도 지원했었는데, SW 적성진단을 5기 때보다 못 풀어서 떨어지지 않을까 생각하고 있었는데 생각과 달리 합격을 했습니다. 때문에 개인적인 생각으로는 자소서의 비중이 크다고 생각합니다.

 

[ Interview ]

인터뷰를 가서 느낀 건 이래서 개발자 톡에서 모만 물어보면 대외비다 하는지 알 것 같았습니다

보안서약서도 작성하고 여러 번 주의를 주기 때문에 자세한 내용에 대해서 말씀드리기는 어렵습니다.

면접은 CT + PT + 면접으로 구성되어 있습니다.

제가 면접을 준비했던 방법에 대해서 말씀드리자면 오픈 톡방에서 면접 스터디를 구했습니다. 서로 자소서에서 나올만한 면접 질문을 해주며 피드백을 하고, 면접 기본 질문(1분 자기소개, 지원동기, 성격의 장단점, 나를 뽑아야 하는 이유, 마지막 한마디 등)을 준비했습니다. 면접 경험이 있으신 분이라면 굳이 하지 않으셔도 될 것 같은데 면접 경험이 없으신 분들은 혼자 예상 질문을 짜고 준비하는 것보다는 상대방에게 말하면서 준비해보는 것이 더 많이 도움이 될 것이라고 생각됩니다. 

PT면접의 경우에는 스터디원들과 최신 IT 트렌드나 신기술에 대해서 정리하고 주제를 정해 발표하는 연습을 했습니다. 전공자의 경우 주제에 자신의 프로젝트를 잘 녹여내는 연습을 하는 것이 중요하다고 생각합니다. (저는 전공자입니다.)

SSAFY는 채용면접이 아닌 교육을 위한 면접이기 때문에 교육에 대한 간절함, 이해도를 피력하는 것이 가장 중요하다고 생각합니다. 화이티잉

 

[ 결과 ] 

약 이주 동안 결과를 기다리며 약속의 목요일!! 금요일!! 하면서 우리끼리만의 약속을 하다가 월요일에 결과 발표가 났습니다. 결과는 1 지망 서울 합격!! ( 면접스터디를 함께했던 사람들의 반은 합격을 했습니다. )

 

합격 소식을 받고 OT를 기다리는 동안 웰컴 키트가 왔습니다

반팔티와 후드 집업, 웹캠, 에코백, 텀블러 ( 개인적으로 에코백 질이 정말 좋아서 잘 쓰고 다니고 있습니다ㅋㅋㅋ )

Start Camp를 진행하는 동안 추합이 돌게 됩니다. 그러니 떨어지신 분들은 핸드폰 잘 잡고 계시길!

SSAFY 웰컴 키트

 

저는 아쉽지만 약 3주 동안 수업을 듣다가

SSAFY 입과 전 면접 본 곳에 합격 소식을 받아 퇴소를 하게 되었습니다.

3주 동안 교육을 들으면서 느낀 건... 이 커리큘럼을 다 따라간다면 실력이 늘 수밖에 없겠다....ㅋㅋㅋㅋㅋ

 

싸피를 희망하시는 분들에게 조금이나마 도움이 됐으면 좋겠네요 화이팅!

 

 

 

반응형

'잡동사니' 카테고리의 다른 글

AI면접 유형&꿀팁  (0) 2021.02.05
JavaScript의 기본  (0) 2020.07.13
[Spring] Spring tomcat 오류  (0) 2020.06.18
[Mysql] Mysql 재설치  (0) 2020.06.18
[JSP] JSP 내장객체  (0) 2020.06.16

[ AI 면접 구성 (1시간~1시간반 소요) ]

자기소개 > 기본질문 > 성향파악 > 상황대처 > 보상선호 > 전략게임 > 심층대화

(상황대처, 심층대화는 회사 마다 다름)

 

[ 자기소개 & 기본질문 1. 성격의 장단점 2. 해당 직무(또는 회사) 지원동기  ]

  • 60초의 준비시간 + 90초의 답변시간
  • 자기소개 & 기본질문 스크립트 준비와 암기
  • 미리 스크립트를 짜놓고 천천히 말해도 시간 안에 대답할 수 있도록 간략하게 정리하기
  • 일정한 목소리 톤과 빠르기
  • 답변의 내용은 합격/불합격에 영향을 크게 미치지 않는다고 생각함
  • 화면 보기? 카메라 보기? -> 상관 없고 한곳을 응시하는 것이 좋음

 

[ 성향 파악 ]

  • 약 160개의 문항
  • 무조건 솔직하고 일관성 있게 -> 신뢰성과 직결됨
  • 함정질문에 절대 빠지지 말자! -> 모르면 모른다고 하기 
    • ex1) 나는 00현상에 대해 들어본적 있다
    • ex2) 나는 00와 관련된 000협약에 대해 들어본 적이 있다

 

[ 상황대처 ]

  • 상황을 주어주고 이 상황에 어떻게 대답할지 말하라
  • 20초 이상 답변 시 제출 가능(최대 60초)
  • 답변이 짧다면 타이머를 보면서 말을 늘릴 필요 있음
  • 상황에 적절한 표정을 보여주는 것도 필요
    • ex) 내가 너무 가고싶었던 콘서트 티켓을 친구가 암표로 팔고 있다. 그 친구가 나에게 이것을 암표로 팔려고 한다면 어떤 말을 하겠는가?
    • ex) 아무 문제가 없는 옷을 고객이 환불해달라고 오면 어떻게 말하겠는가?
    • ex) 우리 회사는 자율 출퇴근제를 시행하고 잇다. 그런데 A대리가 업무시간에 업무에 집중하지 않고 영화를 보면서 시간을 보내고 있다. 어떻게 말하겠는가?

 

[ 보상 선호 ]

  • 미래지향으로 하는 것을 추천
  • ex) 다음과 같은 조건이라면, 지난 달 성과에 대한 성과급을 어떻게 받으시겠습니까?

 

[ 심층 대화 ] -> 성향 검사랑 같은 플로우여야함

유형1) 성향 체크 유형

  • 기본 1차 질문 (5초 안에 예/아니오로 대답)
  • 1차 질문을 바탕으로 하는 2차 추가질문 등장(30초 준비시간, 60초 답변시간)

ex) 000님은 직관적인편인가요? (1차 질문) 이성 or 직관

    000님이 직관적 성격이 아니라면, 직관적 판단으로 손해입은 경험을 말해주세요(2차 질문)

ex) 000님은 본인을 존중하지 않는 사람도 존중해야한다고 생각하나요?(1차 질문)

  그렇게 생각하기 어려우셨을텐데 그런 생각을 하게된 이유가 뭔가요? (2차 질문)

   000님은 회사 후배가 아무런 이유없이 000님을 무시한다고 했을때 어떻게 하실건가요?(2차 질문)

 

유형2) 회사/직무 유형

  • 회사 또는 직무에 대한 지원자의 관심을 측정하는 문항
  • 무슨 말이라도 해야 분석 및 채점 가능 모른다고 해서 새로운 질문이 나오지 않음
  • 지원 회사/직무(전공) 관련 질문 받을 가능성이 높아지는 추세

ex) 지원한 산업과 관련된 3가지 전공 개념을 나열해놓고 하나를 선택해서 적용사례를 간단하게 말해보시오

ex) it직무 - 블록체인의 작업 증명 방식을 설명하시오

 

[ AI면접 게임 10개  ]

  • point. 게임의 점수는 합격 여부에 큰 영향을 미치지 않는다
  • 틀리더라도 다시 빠르게 집중하는 모습!
  • 절대 포기하지 않는다
  • 나의 모든 모습은 녹화되고 있다.
  1. 감정 맞히기
  2. 공쌓기 게임(하노이의 탑) -> 보기와 이동 가능 횟수 제시 (하노이의 탑 어플)
  3. 색 - 글자 일치 게임 -> 양쪽에 문구가 뜨는데 왼쪽은 의미만 오른쪽은 색만 생각하기
  4. 자음 - 모음, 짝수 - 홀수 일치 게임 -> 천천히 틀리지 않게
  5. 공 무게 비교하기 -> 저울질 한거 하나 새거 하나 올리면서 비교하기
  6. 날씨 맞히기
  7. 카드 뒤집기 -> 함정카드 존재  위험 감수 or 회피 성향 파악하기 위한 문항
  8. N-back -> 불빛이 들어오는 위치 기억해 2,3 back (Dual Nback 어플)
  9. 입길이 맞히기 -> 주의. 포인트는 정답을 맞췄을 때 랜덤으로 지급됨
  10. 도형 맞추기

 

[ 감정 맞히기 ] -> 약 50문제?

  • 무표정, 기쁨, 슬픔(눈꼬리, 입꼬리 내려감), 무서움, 경멸, 화남, 놀라움, 역겨움
  • 화남 vs 역겨움(코 찡그림)
  • 무서움(미간, 입) vs 놀람(눈 커지고, 입 벌어짐)
  • 경멸(한쪽 입꼬리가 올라감) vs 역겨움 

 

[ 날씨 맞히기 ] -> 난이도 최상

  • 똑같은 문제가 연달아 나왔을때 틀리면 안됨
  • 온도 습도 풍향 기압에 따라 맑음 흐림 판단
  • 온도 습도 조합 흐림 / 풍향 기압 조합은 맑음

 

반응형

'잡동사니' 카테고리의 다른 글

[SSAFY] 싸피 6기 합격 후기(자소서, SW적성진단, Interview)  (1) 2021.07.23
JavaScript의 기본  (0) 2020.07.13
[Spring] Spring tomcat 오류  (0) 2020.06.18
[Mysql] Mysql 재설치  (0) 2020.06.18
[JSP] JSP 내장객체  (0) 2020.06.16
참고 : 바닐라 JS로 크롬 앱 만들기 repl 사용

JavaScript에서 변수 선언 방식 let, const, var

var - 재선언, 재할당 해도 에러가 나오지 않는다. 유연한 변수 선언으로 간단한 테스트에는 편리할 수 있으나, 코드량이 많아진다면 파악하기도 힘들뿐더러 값이 바뀔 우려가 있다.

ES6 이후, var을 보완하기 위해 추가된 변수 선언 방식이 let과 const이다.

둘 다 변수 재선언이 되지 않는다.

  • let - 변수 재할당이 가능하다.
  • const - 변수 재할당 불가능하다. 변하지 않는 고정 값

 

※ 변수 표기법

  • 카멜(Camel) 표기법 : 소문자로 시작 & 스페이스가 필요하면 다음 단어에 대문자를 넣어준다. ex) myFirstVariable
  • 파스칼(Pascal) 표기법 : 대문자로 시작 & 스페이스가 필요하면 다음 단어에 대문자를 넣어준다. ex) MyFirstVariable
  • 팟홀(Pothhole) 표기법 : 밑줄 사용 ex)my_first_variable

 

Data Types

 

Data를 정렬하는 방법  Array, object

 

함수 만들기

 

JS DOM(Document Object Module) Function

문서 객체 모델(DOM, Document Object Model)은 XML이나 HTML 문서에 접근하기 위한 일종의 인터페이스로 문서 내의 모든 요소를 정의하고, 각각의 요소에 접근하는 방법을 제공한다.

자바스크립트는 이러한 객체 모델을 이용하여 다음과 같은 작업을 할 수 있습니다.

  • 자바스크립트는 새로운 HTML 요소나 속성을 추가할 수 있습니다.
  • 자바스크립트는 존재하는 HTML 요소나 속성을 제거할 수 있습니다.
  • 자바스크립트는 HTML 문서의 모든 HTML 요소를 변경할 수 있습니다.
  • 자바스크립트는 HTML 문서의 모든 HTML 속성을 변경할 수 있습니다.
  • 자바스크립트는 HTML 문서의 모든 CSS 스타일을 변경할 수 있습니다.
  • 자바스크립트는 HTML 문서에 새로운 HTML 이벤트를 추가할 수 있습니다.
  • 자바스크립트는 HTML 문서의 모든 HTML 이벤트에 반응할 수 있습니다.
반응형

'잡동사니' 카테고리의 다른 글

[SSAFY] 싸피 6기 합격 후기(자소서, SW적성진단, Interview)  (1) 2021.07.23
AI면접 유형&꿀팁  (0) 2021.02.05
[Spring] Spring tomcat 오류  (0) 2020.06.18
[Mysql] Mysql 재설치  (0) 2020.06.18
[JSP] JSP 내장객체  (0) 2020.06.16
반응형

'잡동사니' 카테고리의 다른 글

AI면접 유형&꿀팁  (0) 2021.02.05
JavaScript의 기본  (0) 2020.07.13
[Mysql] Mysql 재설치  (0) 2020.06.18
[JSP] JSP 내장객체  (0) 2020.06.16
[JSP] JSP 기본 문법  (0) 2020.06.16
반응형

'잡동사니' 카테고리의 다른 글

JavaScript의 기본  (0) 2020.07.13
[Spring] Spring tomcat 오류  (0) 2020.06.18
[JSP] JSP 내장객체  (0) 2020.06.16
[JSP] JSP 기본 문법  (0) 2020.06.16
[JSP] 서블릿의 이해  (0) 2020.06.16

JSP 내장객체란? 

▪ JSP 내장객체란 ‘JSP 내에서 선언하지 않고 사용할 수 있는 객체’라는 의미에서 붙여진 이름.

▪ 구조적으로는 JSP가 서블릿 형태로 자동 변환된 코드 내에 포함되어 있는 멤버변수, 메서드 매개변수 등의 각종 참조 변수(객체)를 말함.

JSP 내장객체

◼ request 내장객체

▪ request는 사용자 요청과 관련된 기능을 제공하는 내장객체로 javax.servlet.http.HttpServletRequest 클래스에 대한 참조 변수임

주로 클라이언트에서 서버로 전달되는 정보를 처리하기 위해 사용한다. 

▪ 대표적으로 HTML 폼을 통해 입력된 값을 JSP에서 가져올 때 사용함. 

request 주요 메서드

 

◼ response 내장객체 

▪ response는 request와 반대되는 개념으로, 사용자 응답과 관련된 기능을 제공.

사용자 요청(request)을 처리하고 응답을 다른 페이지로 전달하는 등의 기능을 제공한다.

 javax.servlet.http.HttpServletResponse 객체에 대한 참조 변수로, request에 만큼 많이 사용되지는 않으나 setContentType, sendRedirect와 같은 메서드는 잘 알아두어야 한다.

response 주요 메서드

※ forward 액션과 response.sendRedirect() 의 차이점

 - forward 액션은 최종적으로 전달되는 페이지에 파라미터(HTML 폼 입력값 등)를 함께 전달함. 

 - sendRedirect() 는 단순히 지정된 페이지로 최종 화면이 이동됨.

 

◼ out 내장객체 

▪ out은 출력 스트림으로써, 사용자 웹 브라우저로 출력하기 위한 내장 객체임.

▪ 여러 예제에서 살펴본 것처럼 스크립트릿에서 브라우저로 텍스트를 출력하는데 사용. 

▪ out은 javax.servlet.jsp.JspWriter 객체의 참조 변수로, 버퍼 관련 메서드와 출력 관련 메서드로 구성되며 out을 이용해서 출력한 내용은 서버의 콘솔이 아닌 사용자에 전달된다.

out 주요 메서드

 

◼ session 내장객체

 ▪ HTTP 프로토콜이 비연결형 프로토콜이기 때문에 한 페이지가 출력된 다음에는 클라이언트와 서버의 연결이 끊어진다. 따라서 한번 로그인한 사용자가 로그아웃할 때까지 페이지를 이동해도 보관해야 할 정보가 있다면 이에 대한 처리가 매우 곤란해진다. 

▪ 이러한 HTTP 프로토콜 문제점을 해결하려고 나온 것이 쿠키와 세션이다.

▪ session 은 javax.servlet.http.HttpSession인터페이스의 참조 변수 이다.

▪ session 은 접속하는 사용자 별로 따로 생성되며 일정시간 유지되고 소멸된다.

▪ 이러한 세션의 특징을 이용해 setAttribute() 메서드를 이용해 임의의 값을 저장해 놓고 활용할 수 있음.

▪ 세션이 주로 사용되는 경우는 다음과 같다.
 ➊ 사용자 로그인 후 세션을 설정하고 일정 시간이 지난 경우 다시 사용자 인증을 요구 할 때.
 ➋ 쇼핑몰에서 장바구니 기능을 구현할 때.
 ➌사용자의 페이지 이동 동선 등 웹 페이지 트래킹 분석 기능 등을 구현할 때.

session 내장객체 메서드

 

JSP 내장객체와 속성 관리

주요 내장객체의 생성 시점과 소멸 시점

 

반응형

'잡동사니' 카테고리의 다른 글

[Spring] Spring tomcat 오류  (0) 2020.06.18
[Mysql] Mysql 재설치  (0) 2020.06.18
[JSP] JSP 기본 문법  (0) 2020.06.16
[JSP] 서블릿의 이해  (0) 2020.06.16
JSP  (0) 2020.06.16

01. 주석

▪ 주석은 프로그램 소스에 텍스트로 된 간단한 설명문을 넣는 것을 말한다

▪ HTML 주석 : 클라이언트로 전달되는 주석

• 일반적인 HTML 문서에서 사용 가능한 주석으로 화면에는 보이지 않지만 브라우저 소스보기를 하면 내용이 노출됨.

<!-– 주석입니다. -->

▪ JSP 주석 : 클라이언트로 전달되지 않는 주석

• JSP 파일에서만 사용 가능한 주석으로 브라우저 소스보기를 해도 내용이 노출되지 않음.

<%-- 주석 --%>

 

02. 지시어

▪ 지시어(Directives)는 JSP 파일의 속성을 기술하는 JSP 문법.

▪ JSP 컨테이너에게 해당 페이지를 어떻게 처리해야 하는지 전달하기 위한 내용을 담고 있다. 

▪ 지시어는 크게 page, include, taglib으로 나눌 수 있으며, 각각에서 다루는 속성이 다르다.

 

1. page 지시어 

▪ page 지시어는 현재 JSP 페이지를 컨테이너에서 처리하는 데 필요한 각종 속성을 기술하는 부분.

▪ 보통 JSP 페이지 맨 앞에 위치함.

<%@ page 속성1="속성값1" 속성2="속성값2“ … %>
//ex
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

page 지시어 속성

- session 

• 세션은 웹 브라우저와 웹 서버가 지속적인 클라이언트 인식을 위해 필요한 정보를 임시로 저장해두는 방법

• 주로 웹 사이트에 로그인하거나 쇼핑몰에서 장바구니 등을 구현할 때 사용된다.

 

- errorPage, isErrorPage 

▪ 두 속성은 jsp파일의 오류 처리를 위한 것으로, errorPage는 현재 페이지에 오류 발생시 호출할 페이지를 지정하는 속성이고 isErrorPage는 오류 처리를 위한 전용 페이지임을 알리는 속성이다.

 

2. include 지시어 

▪ include 지시어는 현재 JSP 파일에 다른 HTML이나 JSP 문서를 포함하기 위한 기능을 제공. 

▪ include 지시어는 다음 절에서 살펴볼 include 액션과 비슷한 기능을 한다. 

<%@ include file=“포함할 파일_이름” %>

▪ 네이버와 같은 인터넷 포털사이트의 화면처럼 여러 정보의 조합으로 한 화면을 구성할 때 유용하게 사용됨.

▪ include 지시어를 사용하면 기능 혹은 화면을 모듈화할 수 있어 화면 구성이나 재활용이 용이하다.

 

3. taglib 지시어 

▪ JSP 기능을 확장하기 위해 만들어진 커스텀 태그 라이브러리를 사용하기 위한 지시어.

<%@ taglib uri=“/META-INF/mytag.tld” prefix=“mytag” %>

 

03. 액션

1. JSP 액션의 종류 

▪ JSP 액션은 JSP 고유 기능으로 빈즈 클래스 연동 및 동적 페이지 관리를 위한 기능을 제공함.

▪ <jsp:action_name attribute=“value” /> 형태를 가짐.

▪ 주로 사용하는 액션은 useBean, get/setProperty 이며 자바 클래스와의 연동을 위해 사용함. 

▪ 액션(Action)은 JSP 주요 구성요소 중 하나로 다음과 같은 기능을 지원한다.

  -  JSP 페이지간 흐름 제어

  - 자바 애플릿 지원

  - 자바 빈즈 컴포넌트와 JSP 상호작용 지원

▪ 특히 useBean 액션은 JSP에서 자바 빈즈 클래스와의 연동을 지원해주는 액션으로 잘 알아둘 필요가 있다.

▪ include 액션은 단순히 페이지를 포함하는 것 뿐만 아니라 파라미터를 포함될 페이지로 전달하는 것이 가능함.

• 사용 예 ) <jsp:param name=“user”  value=“홍길동” />

대표적인 액션의 종류

 

04. 선언과 표현식

1. 선언

▪ JSP 페이지에서 메서드나 멤버변수를 선언하기 위한 구문.

▪ <%!   %>는 JSP 페이지에서 이러한 제약 사항 없이 멤버변수와 메서드 선언을 가능하게 함.

ex)
<%! 
	// 멤버변수 선언이나 메서드 선언이 올 수 있다. 
	String str = "test"; 
	public boolean check() { 
		return false; 
	} 
%>

2. 표현식 

▪ 표현식(Expression)은 이미 여러 소스를 통해 많이 살펴본 것처럼 <%= %>를 사용해서 간단한 데이터 출력이나 메서드 호출 등에 이용한다. 

▪ 코드 마지막에 ‘;(세미콜론)’을 사용하지 않는다는 것에 주의하도록 한다.

ex)
메서드 호출 : <%= calculator() %> 
변수 출력 : <%= result %> 
사칙 연산과 문자열 결합 : <%= “i+2=“+(i+2)+”입니다” %>

 

반응형

'잡동사니' 카테고리의 다른 글

[Mysql] Mysql 재설치  (0) 2020.06.18
[JSP] JSP 내장객체  (0) 2020.06.16
[JSP] 서블릿의 이해  (0) 2020.06.16
JSP  (0) 2020.06.16
[JSP] JSP 개발환경 구축  (0) 2020.06.16

01. 서블릿 개요

1. 서블릿(Servlet)이란? 

▪ 서블릿은 자바 플랫폼에서 컴포넌트를 기반으로 하는 웹 애플리케이션 개발의 핵심 기술.

▪ JSP 는 서블릿 기반의 웹 프로그래밍 기술로 내부적으로 JSP는 서블릿으로 변환 되어 실행됨.

▪ 따라서 JSP를 보다 잘 이해하고 고급 웹 프로그래밍 개발을 위해서는 서블릿에 대한 이해가 필요함.

 

◼ 서블릿의 장점 

➊ 자바를 기반으로 하므로 자바 API를 모두 사용할 수 있다.

➋ 운영체제나 하드웨어에 영향을 받지 않으므로, 한 번 개발된 애플리케이션은 다양한 서버 환경에서도
실행할 수 있다.

➌ 웹 애플리케이션에서 효율적인 자료 공유 방법을 제공한다. 

➍ 다양한 오픈소스 라이브러리와 개발도구를 활용할 수 있다. 

 

◼ 웹 애플리케이션 개발에 서블릿 사용 시 이점 

➊ MVC 패턴을 쉽게 적용할 수 있고 컨테이너와 밀접한 서버 프로그램을 구현할 수 있다.

➋ MVC 패턴을 적용할 때 콘텐츠와 비즈니스 로직을 분리할 수 있으며 컨트롤러와 뷰가 역할을
분담함으로써, 웹 디자이너와 개발자 간에 작업을 원활하게 할 수 있다.

➌ 리스너 및 필터 서블릿 등 고급 프로그래밍 기법을 통해 더욱 효과적인 웹 애플리케이션을 설계할 수 있다.

 

2. 서블릿과 서블릿 컨테이너 

▪ 서블릿 컨테이너는 서블릿을 실행하기 위한 서버 소프트웨어를 말하는 것으로 JSP나 서블릿으로 만들어진 웹 프로그램을 개발하고 실행하기 위한 환경임.

▪ 아파치 톰캣이 대표적임.

 

3. 서블릿 동작 과정 

▪ 서블릿은 개발자가 소스 작성 후 컴파일 과정을 거쳐 컨테이너에 배치(deploy)하게 되면 컨테이너에 의해 실행되어 관리된다. 

▪ 이후 사용자 요청에 따라 스레드 단위로 실행되면서 데이터베이스 연동 등 필요한 작업을 수행하고 처리 결과를 사용자에게 HTML 형식으로 전달하는 구조로 동작한다.

서블릿 개발과 실행 과정

 

02. 서블릿 구조와 생명주기

1. 서블릿 구조와 API

▪ JSP와 달리 서블릿은 일반적인 자바 클래스 구조를 가진다. 

▪ 이는 서블릿이 일반 자바 소스의 구조라 는 의미로 컴파일 과정이 필요함을 의미

▪ 또한 서블릿은 컨테이너에 의해 실행되므로 개발자가 임의로 프로그램 하는 것이 아니라 특정 클래스를 상속 받아야만 구현할 수 있는 구조임.

▪ 따라서 서블릿 프로그램을 하려면 서블릿 클래스의 상관 관계나 API의 기본 구조를 이해해야 한다.

▪ API(Application Programming Interface)는 특정 클래스를 다른 프로그램에서 사용하기 위해 필요한 정 보를 규격화 해놓은 것을 말함.

▪ 일반적으로 서블릿은 java.servlet.HttpServlet 클래스를 상속해서 구현 함.

javax.servlet.http.HttpServlet을 상속받은 서블릿 동작 구조

GET 방식

• 서버에 있는 정보를 클라이언트로 가져오기 위한 방법이다. 예를 들어 HTML, 이미지 등을 웹 브라우저에서 보기 위한 요청.

• 서버에는 최대 240Byte까지 데이터를 전달할 수 있다.

• ‘?’ 이후의 값들은 서버에서 QUERY_STRING을 통해 전달된다. ‘속성=값’ 형태로 사용해야 하며 ‘&’는 여러 속성 값을 전달할 때 연결해주는 문자열이다.

• URL이 노출되기 때문에 보안에 문제가 생길 수 있다.

 

 POST 방식 

• 서버로 정보를 올리기 위해 설계된 방법이다. 예를 들어 HTML 폼에 입력한 내용을 서버에 전달하기 위한 요청.

• 서버에 전달 할 수 있는 데이터 크기에는 제한이 없다. 

• URL에는 매개변수가 표시되지 않는다.

 

2. 서블릿 생명주기 

◼ 서블릿 초기화 : init() 메서드

▪ 서블릿 실행시 호출되는 메서드로 초기에 한 번만 실행된 다. 공통적으로 필요한 작업 등 수행 

◼ 요청/응답 : service() 메서드 

▪ 사용자 요청에 따라 스레드로 실행되는 메서드로 각각 service() 메서드를 통해 doGet() 혹은 doPost() 메서드가 호출된다.

▪ 파라미터인 HttpServletRequest 와 HttpServletResponse 를 통해 사용자 요청을 처리한다. 

◼ 서블릿 종료 : destroy() 메서드

▪ 컨테이너로부터 서블릿 종료 요청이 있을 때 호출되는 메서드.

▪ init()와 마찬가지로 한 번만 실행되며, 서블릿이 종료되면 서 정리할 작업이 있다면 destroy() 를 오바라이딩해서 구현함.

서블릿 생명주기

 

반응형

'잡동사니' 카테고리의 다른 글

[JSP] JSP 내장객체  (0) 2020.06.16
[JSP] JSP 기본 문법  (0) 2020.06.16
JSP  (0) 2020.06.16
[JSP] JSP 개발환경 구축  (0) 2020.06.16
[JSP] 웹 프로그래밍 언어와 주요 기술  (0) 2020.06.16

+ Recent posts