728x90
반응형
SMALL

(1) 설정

  • tomcat 설치(id/password/port 지정)
  • eclipse for java developer and web(java ee)
  • eclipse 실행 후 우측 하단 server tab
  • new server 설정tomcat이 설치된 디렉토리 선택
  • apache > tomcat 9.0선택
  • new project → dynamic web project

 

(2) 기본 용어

  • Context root
    메타 정보와 웹 정보를 관리하는 META-INF와 WEB-INF 파일이 자동 생성
    JSP 파일은 여기 하위에 저장되어야 경로를 찾을 수 있음
  • Content Directory
    프로젝트명을 의미, url의 호스트, 포트 뒤에 나온다.

(3) 톰캣에서의 서블릿

  • 서블릿 인터페이스
    서블릿은 웹서버 내부에서 동작하는 작은 자바 프로그램
    서블릿은 웹 클라이언트에게 요청을 받고 그에 응답을 해준다.
    (http)
    javax.servletGenericServlet 혹은 javax.servlet.httpServlet을 상속받아서 인터페이스 구현이 가능
  • 서블릿 라이프사이클
    서블릿은 생성 이후 init() 메서드를 통해 초기화
    클라이언트가 서비스(service())로 보낸 요청들을 처리한다.
    서블릿의 사용 중지 후 destroy()를 이용해 제거된다.
  • init()
    어느 서블릿이 서브스에 배치되고 있다는 것을 나타내기 위해
    서블릿 컨테이너로부터 호출되는 메서드
    서블릿이 요청을 받기 전에 반드시 성공적으로 완료되어야 함

 

오류 유형

ServletException

웹 서버 설정시간 내에 반환되지 않는 경우

-service(ServletRequest req, ServletResponse res)

서블릿이 요청에 응답하도록 서블릿 컨테이너에서 호출되는 메서드

서블릿 init() 메서드가 성공해야 실행 가능

response의 상태코드는 반드시 설정해야 함

Sevlet 객체가 생성되면 메모리에 존재하여 동일한 서블릿에 대한 요청이 오면 init를 수행하지 않고 메모리에 남겨둔 것을 재사용

⇒ 첫 로딩에는 느린 느낌, 이후에는 상대적으로 빠름

728x90
반응형
LIST

'개발 > 정리 내용' 카테고리의 다른 글

디렉티브(directive) 태그  (0) 2023.01.14
기본 개념 2  (0) 2023.01.14
서블릿(Servlet)  (0) 2023.01.14
CGI (Common Geteway Interface)  (0) 2023.01.14
정규화(Normalization)  (0) 2023.01.13
728x90
반응형
SMALL

서버 + 애플릿의 합성어

자바 웹 서버로 웹 페이지를 제공할 때 동적 데이터 제공을 도와주는 역할

사용자님 환영합니다 → 홍길동님 환영합니다.

이런 일을 도와주는 자바 소프트웨어 컴포넌트

web browser request → response

web browser request → servlet → response

문자열의 파싱 등에 들어가는 시간을 줄이고

비즈니스 로직의 개발에 집중 가능

  • CGI와 servlet의 차이점

CGI는 브라우저에서 웹서버로 요청이 갔을 때 각각에 대한 프로세스를 만듬

→ 대량 트래픽 시 부하 발생

servlet은 프로세스를 만들지 않고 프로세스는 1개이며 내부의 스레드로 차지
스레드 개수는 일정 이상의 요청이 들어오면 대기
스레드들이 공유할 수 있는 공유자원은 공유함

  1. 자바 소스 개발
  2. 컴파일 후 클래스 파일 생성
  3. 클래스가 톰캣과 같은 서블릿 컨테이너에 등록
  4. 클라이언트가 request를 보냄
  5. request에 상응하는 서블릿이 실행
  6. 서블릿 메서드가 실행
  7. DB가 있으면 DB 연동
  8. 완성된 데이터를 클라이언트에 반환
728x90
반응형
LIST

'개발 > 정리 내용' 카테고리의 다른 글

기본 개념 2  (0) 2023.01.14
서블릿 테스트  (0) 2023.01.14
CGI (Common Geteway Interface)  (0) 2023.01.14
정규화(Normalization)  (0) 2023.01.13
MariaDB Built-in Function  (0) 2023.01.13
728x90
반응형
SMALL

(1) CGI 이전 웹서버 : 사용자가 특정 경로를 입력하면 리소스를 제공

(2) CGI : 사용자의 입력값을 인자로 프로그램을 동작시켜 실행 결과를 웹으로 제공 프로그램을 구동하는 기술

(3) CGI 동작 구조

  1. 통신 request(요청)이 웹 서버로 전달
  2. 웹 서버는 요청에 있는 주소가 CGI 프로그램에 매핑되는지 확인
  3. 매핑되는 프로그램이 있다면 실행(환경변수와 표준입력 형태로 요청 전달
  4. 웹 서버는 CGI 프로그램이 표준 출력으로 보낸 내용을 그대로 돌려준다

정적페이지) 기업 소개 페이지

동적페이지) 소셜 네트워크 페이지
                    데이터가 동적이며, 사용자의 행동에 민감하게 반응
                    추천 알고리즘, 팔로우, 내가 좋아요 표시한 게시물

728x90
반응형
LIST

'개발 > 정리 내용' 카테고리의 다른 글

서블릿 테스트  (0) 2023.01.14
서블릿(Servlet)  (0) 2023.01.14
정규화(Normalization)  (0) 2023.01.13
MariaDB Built-in Function  (0) 2023.01.13
SQL II  (0) 2023.01.13
728x90
반응형
SMALL

23.01.14

  • 6일차 해야할 일
    • [ ] 터미널 깃 영상보고 공부하기 (사용자 등록까지 완료! 포크..? 고민중)
    • [x] 소스트리 공부하기! (결론.. 에러나서 포크로 하다 터미널로 하자고 말이 나온 상태! 그래도 포크에 대해 초급은 땟다!)
    • [x] JIL쓰기!! 지금 쓰고 있죠~
    • [x] 깃허브연습하기 (이건 매일 해도 어려운거가타요 ㅠㅠ)

13일에 만든 것! 근데..?? 아직도 안된당…

근데 모바일 화면

?????잘되네염???? 뭘까..

현재 도매인 재설정중!!

오늘은 하루종일 깃에 대해 공부를 했다!!

왜 푸쉬를 하지 못하는가…!!!

자괴감에 빠지면서도 아니야 난 할 수 있어!!! 하면서 다시 하고

이건 매일 연습을 해야할거 같아요

매니저님들한테 깃에 대한 책을 부탁드렸는데, 

팀 개발을 위한 깃, 깃허브 시작하기 구매 완료!!

내일 WIL쓰면서 하루를 돌아보고 내일도 깃 공부를 하기!!

항해 사전키드가 도착했다! + 자바의 정석 기초편

(슬픈건… 이미 자바의 정석 기초편이 있다….ㅎㅎㅎㅎㅎㅎㅎ)
팔고… 새로운 책을 구매하는 게 더 낫겠죠..?

대용량 컵, 스파르타 스티커, 항해 옷 이렇게 들어있는데

 

아쉬운게… 옷이…..XL 운동할때 입을게요….ㅎㅎ너무 큰가..? 집에서 수업들을 때 입죠 뭐…ㅎㅎㅎㅎㅎ

너무 귀엽습니다..ㅎㅎㅎ 노트북에 붙일까바염

 

오늘 집에서 놀고 있는 모니터를 찾아 듀얼로 연결했어요 ㅎㅎㅎ

확실히 보기 더 편하네요. 화질이 안타까울뿐..ㅎㅎㅎ

내일이 마지막 휴일이 될 것 같고.. 운동할 시간도 없겠지… 슬프군요…

 

오늘 하루도 수고하셨습니다~

  • 7일차 해야할 일
    • [ ] 터미널 깃 영상보고 공부하기 (사용자 등록까지 완료! 포크..? 고민중)
    • [ ] JIL쓰기!! 지금 쓰고 있죠~
    • [ ] 깃허브연습하기
728x90
반응형
LIST

'일상 > TIL' 카테고리의 다른 글

8일차  (0) 2023.01.17
7일차  (0) 2023.01.16
5일차 (입학시험!)  (0) 2023.01.13
4일차  (0) 2023.01.12
3일차  (0) 2023.01.11
728x90
반응형
SMALL

(1) 기본 목표
테이블 간의 중복된 데이터를 허용하지 않는 것
무결성을 유지하며 DB의 저장공간을 줄일 수 있다.

(2) 정의
삽입, 수정, 삭제 시 발생할 수 있는 이상 현상을 줄이는 과정
테이블을 분해하는 것이며 보통 3차 정규화까지 진행

(3) 필요 이유
테이블을 잘못 설계하면 불필요한 데이터 중복으로 인해
공간이 낭비되는데, 이를 이상현상(Anomaly)이라고 함

아이디  이름     전공   수업코드  수업명  인원
-------------------------------------------------------------

apple   김사과   컴공      C001        Java      30
apple   김사과   컴공      C002       DBMS    35
apple   김사과   컴공      C003       Python   30
Hpple  홍길동   경영      A001       아버지   10
Lpple   이순신   해양      B001         선박     15

 

  1. 삽입 이상 : 새로운 데이터를 삽입하기 위해 불필요한 데이터도 넣어야 하는 문제
    예) 과목이 정해지지 않은 학생을 넣으려면 수업명에 NULL을 입력할 수 없어서 수업명을 '미정',
  2. 갱신 이상 : 중복된 행 중 일부만 변경해서 데이터가 불일치 되는 것
    예) 김사과 학생이 전공을 때려치고 기계 로 바꾸려면 3개 데이터를 변경해야 함
  3. 삭제 이상 : 행을 삭제하면 필요한 데이터까지 삭제되는 현상
    예) 아버지 수업을 폐강하는 경우 홍길동 정보를 지우는 실수 발생

(4) 정규화의 종류

  1. 1차 정규화 하나의 컬럼에는 하나의 값만 존재해야 한다(원자성)
1) 1차 정규화
하나의 컬럼에는 하나의 값만 존재해야 한다(원자성)

   * 도시건설 게임
   User   Building      Cost       Place            Place_size
   -----------------------------------------------------------------
   Bach   Farm,Fac      50,70      Plain,City       100, 200
   Mozart Farm,Fac,Cos  50,70,200  Plain,City,City  100, 200, 200
   Tscai  Fac           70         Shore            500

   User   Building      Cost       Place            Place_size
   ------------------------------------------------------------
   Bach   Farm          50         Plain            100
   Bach   Fac           70         City             200
   Mozart Farm          50         Plain            100
   Mozart Fac           70         City             200
   Mozart Cos           200        City             200
   Tscai  Fac           70         Shore            500

2) 2차 정규화(2nd Normal Form, 2NF)
   후보키의 진부분집합에서 부분함수 종속성을 제거하는 작업
   부분함수적 종속을 완전함수적 종속으로 만드는 과정

   User   Building     Place    Place_size         Building  Cost
   ---------------------------------------         --------------
   Bach   Farm         Plain    100                Farm      50
   .....                                           Fac       70
   Tscai  Fac          Shore    500                Cos       200

3) 3차 정규화
   1차 정규화 및 2차 정규화를 만족하고
   이행적 함수적 종속을 갖지 않는 정규형
   이행적 함수적 종속 : A값을 알면 B값을 알고, B값을 알면 C값을 아는 관계

   User   Building     Place       Building  Cost
   -------------------------
   Bach   Farm         Plain       Place     Place_size
   ...
   Tchai  Fac          Shore

(5) 반정규화 활용 단계에서 정규화를 진행하지 않는 게 더 편리하다면 반정규화를 진행한다.

예)
hash_tag
1   DBMS
1   LIKE
1   Good
3   DBMS
3   Boring

board
1   Funny DBMS   apple
2   Funny Python apple
3   Boring DBMS  melon

-- 반정규화 --
board
1   Funny DBMS   apple  #DBMS#LIKE#Good
2   Funny Python apple
3   Boring DBMS  melon  #DBMS#Boring

 

728x90
반응형
LIST

'개발 > 정리 내용' 카테고리의 다른 글

서블릿(Servlet)  (0) 2023.01.14
CGI (Common Geteway Interface)  (0) 2023.01.14
MariaDB Built-in Function  (0) 2023.01.13
SQL II  (0) 2023.01.13
데이터 모델링 1  (0) 2023.01.13
728x90
반응형
SMALL

(1) single row function : 한 줄 입력, 한 줄 출력
    1) Numeric
       abs(x), ceil(x), floor(x), round(x, y)
    2) Text
       lower(str), upper(str), length(str)
       substr(str, m, n)
      lpad(str, n, text), rpad(str, n, text)
      concat(str1, str2)
      replace(str, fstr, sstr)
   3) Date
       add_months()
   4) Conversion
       to_char()

(2) group(aggregate) function : 여러 줄 입력, 한 줄 출력
   1) count(*), distinct
   2) min(), max(), avg(), sum()

  • group by, order by, having
    // 초보자들은 사용하기 어려움
    3)order by
    SQL의 결과들을 정렬하기 위한 문법
    order by 컬럼명1 [asc|desc], 컬럼명2, ---
728x90
반응형
LIST

'개발 > 정리 내용' 카테고리의 다른 글

CGI (Common Geteway Interface)  (0) 2023.01.14
정규화(Normalization)  (0) 2023.01.13
SQL II  (0) 2023.01.13
데이터 모델링 1  (0) 2023.01.13
Dual 테이블(Oracle, MySQL 계열)  (0) 2023.01.13

+ Recent posts