λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

λͺ©λ‘μ΄ μ—†μŠ΅λ‹ˆλ‹€.

[JSP기초] μ›Ή μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜?

πŸ—£ Language/JSP



    μ›Ή μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜


    ( Web Application )



    μ›Ή μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ΄λž€

    말 κ·ΈλŒ€λ‘œ ν’€μžλ©΄


    μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μΈλ°

    μ›Ήμ—μ„œ λŒμ•„κ°€λŠ” μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ΄λž€ 말이닀.


    λ”°λΌμ„œ μ›Ή μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜ ꡬ좕을 μœ„ν•΄ ν•„μš”ν•œ μΉœκ΅¬λ“€μ΄ μžˆλ‹€.



    1. μ›Ή λΈŒλΌμš°μ €


    μ‚¬μš©μžκ°€ 직접 λ³΄λŠ” 화면을 좜λ ₯ν•΄μ£ΌλŠ” 친ꡬ둜

    μ‚¬μš©μžμ™€ ν˜Έν‘ν•˜κ³  μ‚¬μš©μžκ°€ μ›ν•˜λŠ” μš”μ²­μ„

    μ›Ή μ„œλ²„λ‘œ μ „λ‹¬ν•˜λŠ” 친ꡬ.




    2. μ›Ή μ„œλ²„


    μ›Ή λΈŒλΌμš°μ €μ—κ²Œ μ‚¬μš©μžμ˜ μš”μ²­μ„ λ°›μ•„μ„œ μ²˜λ¦¬ν•œ 후에

    μ‚¬μš©μžκ°€ μ›ν•˜λŠ” 응닡을 μ›ΉλΈŒλΌμš°μ €μ—κ²Œ μ „λ‹¬ν•΄μ£ΌλŠ” 친ꡬ둜

    처리λ₯Ό μœ„ν•΄ μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜ μ„œλ²„λΌλŠ” 친ꡬ의 도움을 받을 λ•Œλ„ 있고

    μžμ‹ μ΄ 직접 μ²˜λ¦¬ν•  수 μžˆλŠ” ν”„λ‘œκ·Έλž¨μ„ ν˜ΈμΆœν•΄μ„œ μ²˜λ¦¬ν•  λ•Œλ„ μžˆλ‹€.




    3. μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜ μ„œλ²„


    μ›Ή μ„œλ²„κ°€ μ‚¬μš©μžμ˜ μš”μ²­μ— λŒ€ν•œ μ²˜λ¦¬κ°€ ν•„μš”ν•  λ•Œ

    μ²˜λ¦¬ν•΄μ£ΌλŠ” ν”„λ‘œκ·Έλž¨μ„ 담은 μ„œλ²„λ‘œ μ›Ή μ„œλ²„μ— λ“€μ–΄μ˜¨ μš”μ²­ 쀑 μ²˜λ¦¬κ°€ ν•„μš”ν•œ μž‘μ—…λ“€μ— λŒ€ν•΄

    처리 ν›„ κ²°κ³Όλ₯Ό μ‘λ‹΅ν•˜λŠ” 친ꡬ.




    4. λ°μ΄ν„°λ² μ΄μŠ€


    처리λ₯Ό μœ„ν•œ μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜ μ„œλ²„μ˜ ν”„λ‘œκ·Έλž¨λ“€μ΄ ν•„μš”ν•œ 데이터가 μŒ“μ—¬μžˆλŠ” μ €μž₯μ†Œ.

    이 μΉœκ΅¬λŠ” μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜ μ„œλ²„μ™€ ν˜Έν‘ν•œλ‹€.




    그럼 μ›Ή ν”„λ‘œκ·Έλž˜λ° κ΅¬ν˜„μ€ μ–΄λ–»κ²Œ ν• κΉŒ?


    κ΅¬ν˜„ 방식이 2가지가 μžˆλ‹€.

    μ•„κΉŒ μ›Ή μ„œλ²„κ°€ 처리λ₯Ό ν•  λ•Œ μžμ‹ μ΄ 직접 ν”„λ‘œκ·Έλž¨μ„ ν˜ΈμΆœν•  떄도 μžˆμ§€λ§Œ

    μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜ μ„œλ²„λΌλŠ” 친ꡬ의 도움을 받을 λ•Œλ„ μžˆλ‹€κ³  ν–ˆλ‹€.

    그게 λ°”λ‘œ κ΅¬ν˜„ 방식이닀.


    1. CGI 방식

    CGI (Common Graphic Interface) λŠ” μ›Ή μ„œλ²„μ—μ„œ 처리기λŠ₯을

    직접 ν”„λ‘œκ·Έλž¨μ— μ ‘κ·Όν•΄μ„œ μ²˜λ¦¬ν•˜λŠ” 방식



    2. μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜ μ„œλ²„ 방식

    μ›Ή μ„œλ²„κ°€ 직접 ν”„λ‘œκ·Έλž¨μ„ ν˜ΈμΆœν•˜μ§€ μ•Šκ³  μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜ μ„œλ²„λ₯Ό 톡해

    κ°„μ ‘μ μœΌλ‘œ ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ν•˜μ—¬ μ²˜λ¦¬ν•˜λŠ” 방식






    그럼 이 μ°¨μ΄λŠ” 뭐가 μžˆμ„κΉŒ?

    CGI 방식이 μ§μ ‘ μ²˜λ¦¬ν•˜λ‹ˆκΉŒ 속도가 λΉ λ₯΄μ§€ μ•Šμ„κΉŒ?

    μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜ μ„œλ²„ 방식은 쀑간에 μ„œλ²„κ°€ μžˆμœΌλ‹ˆκΉŒ 더 λŠλ¦¬μ§€ μ•Šμ„κΉŒ?




    μ ‘μ†μžκ°€ λ§Žμ€ μ„œλΉ„μŠ€μ˜ 경우 CGIλ°©μ‹λ³΄λ‹€λŠ” μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜ μ„œλ²„ λ°©μ‹μœΌλ‘œ μ²˜λ¦¬ν•˜λŠ” 것이 μ’‹λ‹€.

    κ·Έ μ΄μœ λŠ” CGI 방식은 λ™μ‹œ μ ‘μ†μžμ— λŒ€ν•΄μ„œ μš”μ²­μ΄ λ°œμƒν•  λ•Œ λ§ˆλ‹€

    같은 ν”„λ‘œκ·Έλž¨μΈ 것도 각각 λ©”λͺ¨λ¦¬μ— 올리기 λ•Œλ¬Έμ— ν”„λ‘œμ„ΈμŠ€κ°€ μ •λΉ„λ‘€ν•˜κ²Œ λŠ˜μ–΄λ‚œλ‹€.

    μ΄λŠ” λ§Žμ€ λ©”λͺ¨λ¦¬ μš©λŸ‰μ΄ μš”κ΅¬κ°€ 되고 μ„œλ²„ μš΄μ˜μ— 돈이 많이 λ“€μ–΄κ°ˆ λΏλ”λŸ¬

    λ™μ‹œ μ ‘μ†μžκ°€ 일정 기쀀을 λ„˜μœΌλ©΄ 속도 λ˜ν•œ κΈ°ν•˜κΈ‰μˆ˜μ μœΌλ‘œ 느렀질 ν™•λ₯ μ΄ λ†’λ‹€.








    그에 λ°˜ν•΄ μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜ μ„œλ²„ 방식은 λ‹€λ₯Έ μ„œλ²„μ—μ„œ 같은 ν”„λ‘œκ·Έλž¨μ— λŒ€ν•œ μˆ˜μš”κ°€ 있으면

    ν•˜λ‚˜λ§Œ μ‹€ν–‰ μ‹œμΌœμ„œ κ·Έ κ²°κ³Όλ₯Ό μš”μ²­ν•œ μ ‘μ†μžμ—κ²Œ μ „λ‹¬ν•˜λŠ” 것이기 λ•Œλ¬Έμ—

    더 λ§Žμ€ λ™μ‹œ μ ‘μ†μžλ₯Ό 감당할 수 μžˆλ‹€(μ²˜λ¦¬λŸ‰μ΄ 더 μ’‹λ‹€).






    그럼 μ²˜λ¦¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ€ μ–΄λ–»κ²Œ κ΅¬ν˜„ν•˜λŠ” κ±°μ•Ό?


    ν”„λ‘œκ·Έλž¨μ΄κΈ° λ•Œλ¬Έμ— λ‹Ήμ—°νžˆ μ½”λ“œλ‘œ κ΅¬ν˜„ν•œλ‹€.

    이 μ—­μ‹œ 방식이 2κ°€μ§€λ‘œ λ‚˜λ‰œλ‹€.



    1. μ‹€ν–‰μ½”λ“œ 방식


    μ½”λ“œμž‘μ„±μ„ μ™„λ£Œν•œ μ†ŒμŠ€νŒŒμΌμ„

    μ»΄νŒŒμΌμ΄λΌλŠ” μž‘μ—…μ„ ν†΅ν•΄μ„œ μ‹€ν–‰ νŒŒμΌμ„ λ”°λ‘œ μƒμ„±ν•˜μ—¬

    ν•„μš” μ‹œμ— μ‹€ν–‰ νŒŒμΌμ„ μ‹€ν–‰ν•˜λŠ” 방식이닀.


    2. 슀크립트 방식


    μ½”λ“œμž‘μ„±μ„ μ™„λ£Œν•˜κ³  μ»΄νŒŒμΌμ„ ν•˜λŠ” 것이 μ•„λ‹ˆλΌ

    ν•„μš” μ‹œμ— 직접 μ‹€ν–‰μ‹œμΌœ ν•œ 쀄 ν•œ 쀄 μ‹€ν–‰ν•˜λŠ” 방식이닀.



    μ΄λŠ” μ»΄νŒŒμΌλŸ¬μ™€ μΈν„°ν”„λ¦¬ν„°μ˜ 차이둜 

    링크λ₯Ό ν†΅ν•΄μ„œ μžμ„Ένžˆ λ³Ό 수 μžˆλ‹€.





    μ‹€ν–‰ μ½”λ“œ 방식이  μ»΄νŒŒμΌμ„ 미리 해두고 μ‹€ν–‰ν•˜κΈ° λ•Œλ¬Έμ—

    μ‹€ν–‰ 속도가 더 λΉ λ₯Ό 것 같은 λŠλ‚Œμ΄ μ˜€μ§€λ§Œ,

    그렇지도 μ•Šλ‹€.


    μ™œλƒν•˜λ©΄ 슀크립트 μ½”λ“œμ˜ λ²ˆμ—­μ΄ 졜초의 ν•œ 번만 ν•˜λ„λ‘ μΊμ‹œλ₯Ό 톡해 μ΅œμ ν™”κ°€ λ˜μ–΄ 있고,

    일반적으둜 μ‹€ν–‰ μ½”λ“œ 방식은 CGI 방식이고 슀크립트 μ½”λ“œ 방식은

    μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜ μ„œλ²„ 방식이기 λ•Œλ¬Έμ— 전체 μ²˜λ¦¬λŸ‰μ— λŒ€ν•΄μ„œλŠ” 슀크립트 μ½”λ“œ 방식이 더 λ‚«λ‹€.

    λ§ˆμ§€λ§‰μœΌλ‘œ 기술의 λ°œλ‹¬λ‘œ 슀크립트 μ–Έμ–΄λ₯Ό λ²ˆμ—­ν•œ μ½”λ“œκ°€ 

    일반 ν”„λ‘œκ·Έλž¨κ³Ό λ™μΌν•œ μˆ˜μ€€μ˜ μ„±λŠ₯을 μ œκ³΅ν•˜κ³  있기 λ•Œλ¬Έμ—

    μš”μ¦˜μ€ μˆ˜μ •μ΄ μ‰¬μš΄ 슀크립트 μ½”λ“œλ₯Ό 많이 μ“΄λ‹€.


     λΉ„ꡐ ν•­λͺ©

    μ‹€ν–‰ μ½”λ“œ 방식 

    슀크립트 방식 

    μ½”λ“œ ν˜•νƒœ 

     μ»΄νŒŒμΌλœ μ‹€ν–‰ μ½”λ“œ

    컴파일 λ˜μ§€ μ•Šμ€ 슀크립트 μ½”λ“œ 

    μ‹€ν–‰ 방식 

     μ‹€ν–‰ νŒŒμΌμ„ μ‹€ν–‰

    슀크립트 μ½”λ“œλ₯Ό μ‹€ν–‰ 

    μ½”λ“œ λ³€κ²½ 

    쑰금만 μˆ˜μ •ν•΄λ„ μ»΄νŒŒμΌμ„ λ‹€μ‹œ ν•΄μ„œ μ•Œλ§žμ€ μœ„μΉ˜μ— λ³΅μ‚¬ν•˜λŠ” 과정을 반볡 

    슀크립트 μ½”λ“œ λΆ€λΆ„λ§Œ μˆ˜μ •ν•˜λ©΄ λœλ‹€ 

    μ’…λ₯˜ 

    C 기반의 CGI ν”„λ‘œκ·Έλž¨ 

    JSP, ASP.net, Ruby, PHP λ“± 


    μ°Έκ³  μ„œμ  : JSP 2.1 κΈ°μ΄ˆλΆ€ν„° μ‹€μ „κΉŒμ§€ / μ΅œλ²”κ·