JAVA

session 객체? + μΏ ν‚€

μ„œμœ€-μ • 2023. 11. 28. 14:03

πŸ’œ session 객체

μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„ κ°„μ˜ μƒνƒœλ₯Ό μœ μ§€ν•˜κ³  정보λ₯Ό μ €μž₯ν•˜λŠ”λ° μ‚¬μš©λ˜λŠ” κ°μ²΄νžˆλ‹€.

HTTP ν”„λ‘œν† μ½œμ˜ stateless νŠΉμ„± λ•Œλ¬Έμ— 각 μš”μ²­ 간에 μƒνƒœλ₯Ό μœ μ§€ν•  수 μ—†μ§€λ§Œ, 

μ„Έμ…˜μ€ 이λ₯Ό κ·Ήλ³΅ν•˜κΈ° μœ„ν•œ λ©”μ»€λ‹ˆμ¦˜μœΌλ‘œ λ„μž…λ˜μ—ˆλ‹€.

 

 

μ„Έμ…˜μ€ 일반적으둜 λ‹€μŒκ³Ό 같은 μš©λ„λ‘œ μ‚¬μš©λœλ‹€.

 

1) μƒνƒœ μœ μ§€

μ„Έμ…˜μ€ ν΄λΌμ΄μ–ΈνŠΈκ°€ μ„œλ²„μ— μ—°μ†μ μœΌλ‘œ μ ‘μ†ν•˜λŠ” λ™μ•ˆ 정보λ₯Ό μœ μ§€ν•˜λŠ”λ° μ‚¬μš©λœλ‹€.

μ‚¬μš©μžκ°€ λ‘œκ·ΈμΈν•˜λ©΄ μ„œλ²„λŠ” μ„Έμ…˜μ„ μƒμ„±ν•˜κ³ ,

이 μ„Έμ…˜μ„ 톡해 μ‚¬μš©μžμ™€ κ΄€λ ¨λœ 정보(예: μ‚¬μš©μž 식별정보, μ„€μ • λ“±)λ₯Ό μ €μž₯ν•˜μ—¬ μœ μ§€ν•  수 μžˆλ‹€.

 

2) μž₯λ°”κ΅¬λ‹ˆμ™€ 같은 데이터 μ €μž₯

μ‡Όν•‘ μΉ΄νŠΈμ™€ 같은 μž„μ‹œ 데이터λ₯Ό μ €μž₯ν•˜κ³  μœ μ§€ν•˜λŠ” 데이도 μ„Έμ…˜μ΄ μ‚¬μš©λœλ‹€.

μ‚¬μš©μžκ°€ μ—¬λŸ¬ νŽ˜μ΄μ§€μ—μ„œ μƒν’ˆμ„ μ„ νƒν•˜κ³  μž₯λ°”κ΅¬λ‹ˆμ— 담을 λ•Œ, 이 정보λ₯Ό μ„Έμ…˜μ— μ €μž₯ν•˜μ—¬ μœ μ§€ν•  수 μžˆλ‹€.

 

3) 둜그인 정보 μœ μ§€

μ‚¬μš©μžκ°€ λ‘œκ·ΈμΈν•œ μƒνƒœλ₯Ό μœ μ§€ν•˜κΈ° μœ„ν•΄μ„œλ„ μ„Έμ…˜μ΄ μ‚¬μš©λœλ‹€.

λ‘œκ·ΈμΈν•œ μ‚¬μš©μžμ— λŒ€ν•œ 정보λ₯Ό μ„Έμ…˜μ— μ €μž₯ν•˜μ—¬ 각 μš”μ²­μ— λŒ€ν•΄ μ‚¬μš©μžλ₯Ό 식별할 수 μžˆλ‹€.

 

4) λ³΄μ•ˆ 관리

μ„Έμ…˜μ€ μ„œλ²„ μΈ‘μ—μ„œ κ΄€λ¦¬λ˜λ―€λ‘œ, ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ 직접 μ‘°μž‘ν•˜κΈ° μ–΄λ ΅λ‹€.

이λ₯Ό 톡해 μƒνƒœ 정보λ₯Ό μ•ˆμ „ν•˜κ²Œ μœ μ§€ν•  수 μžˆλ‹€.

 

 

μ„Έμ…˜μ€ 일반적으둜 μ„œλ²„ μΈ‘μ—μ„œ μƒμ„±λ˜κ³  κ΄€λ¦¬λœλ‹€.

각 μ„Έμ…˜μ—λŠ” κ³ μœ ν•œ μ‹λ³„μž (session ID)κ°€ λΆ€μ—¬λ˜λ©°,

이λ₯Ό 톡해 ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„ κ°„μ˜ ν†΅μ‹ μ—μ„œ ν•΄λ‹Ή μ„Έμ…˜μ„ μ‹λ³„ν•œλ‹€.

μ„Έμ…˜μ€ 일정 κΈ°κ°„ λ™μ•ˆ μœ μ§€λ˜λ©°, 유효 기간이 μ§€λ‚˜λ©΄ μ’…λ£Œλœλ‹€.

 

 

 

 

 

 

 

 πŸ’› μ„Έμ…˜ ν…Œμ΄λΈ”(session table)

데이터 λ² μ΄μŠ€μ—μ„œ μ„Έμ…˜ 정보λ₯Ό κ΄€λ¦¬ν•˜λŠ” ν…Œμ΄λΈ”μ„ κ°€λ¦¬ν‚€λŠ” μš©μ–΄λ‘œ μ‚¬μš©λœλ‹€.

μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ μ„Έμ…˜μ€ ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„ κ°„μ˜ μƒνƒœλ₯Ό μœ μ§€ν•˜κΈ° μœ„ν•΄ μ‚¬μš©λ˜λ©°, 

이 μƒνƒœ μ •λ³΄λŠ” μ„œλ²„μΈ‘μ—μ„œ κ΄€λ¦¬λœλ‹€.

μ„Έμ…˜ ν…Œμ΄λΈ”μ€ μ΄λŸ¬ν•œ μ„Έμ…˜ 정보λ₯Ό μ €μž₯ν•˜λŠ” λ°μ΄ν„°λ² μ΄μŠ€ ν…Œμ΄λΈ”μ„ μ˜λ―Έν•œλ‹€.

 

일반적으둜 μ„Έμ…˜ ν…Œμ΄λΈ”μ—λŠ” λ‹€μŒκ³Ό 같은 컬럼이 포함될 수 μžˆλ‹€.

 

1) Session ID(μ„Έμ…˜ μ‹λ³„μž): 각 μ„Έμ…˜μ„ κ³ μœ ν•˜κ²Œ μ‹λ³„ν•˜λŠ” κ°’

 

2) User ID(μ‚¬μš©μž μ‹λ³„μž): μ‚¬μš©μžλ₯Ό μ‹λ³„ν•˜λŠ” κ°’. λ‘œκ·ΈμΈν•œ μ‚¬μš©μžμ—κ²Œλ§Œ 해당될 수 μžˆλ‹€.

 

3) Session Data(μ„Έμ…˜ 데이터): μ„Έμ…˜μ— κ΄€λ ¨λœ 정보λ₯Ό μ €μž₯ν•˜λŠ” 컬럼. 일반적으둜 ν…μŠ€νŠΈ λ˜λŠ” μ§λ ¬ν™”λœ λ°μ΄ν„°λ‘œ μ €μž₯될 수 μžˆλ‹€.

 

4) Creation Time(생성 μ‹œκ°„): μ„Έμ…˜μ΄ μƒμ„±λœ μ‹œκ°„

 

5) Last Access Time(λ§ˆμ§€λ§‰ μ ‘κ·Ό μ‹œκ°„): μ„Έμ…˜μ΄ λ§ˆμ§€λ§‰μœΌλ‘œ μ ‘κ·Όλœ μ‹œκ°„

 

6) Expiration Time(만료 μ‹œκ°„): μ„Έμ…˜μ΄ λ§Œλ£Œλ˜λŠ” μ‹œκ°„. 만료 μ‹œκ°„μ΄ μ§€λ‚˜λ©΄ 세셔닝 μ’…λ£Œλ  수 μžˆλ‹€.

 

μ„Έμ…˜ ν…Œμ΄λΈ”μ€ 보톡 λ©”λͺ¨λ¦¬, 파일 μ‹œμŠ€ν…œ, λ˜λŠ” λ°μ΄ν„°λ² μ΄μŠ€μ— μ €μž₯λœλ‹€. 

 

 

  μ„Έμ…˜ μΏ ν‚€
μ €μž₯ μœ„μΉ˜ μ„œλ²„ μΈ‘μ—μ„œ μƒμ„±λ˜κ³  κ΄€λ¦¬λœλ‹€.
μ„Έμ…˜ λ°μ΄ν„°λŠ” μ„œλ²„μ˜ λ©”λͺ¨λ¦¬, 파일 μ‹œμŠ€ν…œ, λ°μ΄ν„°λ² μ΄μŠ€ 등에 μ €μž₯λœλ‹€.
ν΄λΌμ΄μ–ΈνŠΈ μΈ‘μ—μ„œ μƒμ„±λ˜μ–΄ κ΄€λ¦¬λœλ‹€.
μΏ ν‚€ λ°μ΄ν„°λŠ” ν΄λΌμ΄μ–ΈνŠΈμ˜ λΈŒλΌμš°μ €μ— μ €μž₯되며, μ„œλ²„μ™€ ν΄λΌμ΄μ–ΈνŠΈ κ°„μ˜ ν†΅μ‹ μ—μ„œ μΏ ν‚€κ°€ ν•¨κ»˜ μ „μ†‘λœλ‹€.
λ³΄μ•ˆ μ„Έμ…˜μ€ μ„œλ²„ μΈ‘μ—μ„œ κ΄€λ¦¬λ˜λ―€λ‘œ ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ 직접 μ‘°μž‘ν•˜κΈ° μ–΄λ ΅λ‹€.
이둜 인해 μƒλŒ€μ μœΌλ‘œ μ•ˆμ „ν•˜κ²Œ μƒνƒœλ₯Ό μœ μ§€ν•  수 μžˆλ‹€.
μΏ ν‚€λŠ” ν΄λΌμ΄μ–ΈνŠΈμ— μ €μž₯되기 λ•Œλ¬Έμ— ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ μΏ ν‚€ 데이터λ₯Ό ν™•μΈν•˜κ±°λ‚˜ μˆ˜μ •ν•˜λŠ” 것이 κ°€λŠ₯ν•˜λ‹€.
λ”°λΌμ„œ λ―Όκ°ν•œ 정보λ₯Ό λ‹΄κ³  μžˆλŠ” 경우 λ³΄μ•ˆμ— μ·¨μ•½ν•  수 μžˆλ‹€.
μš©λ„ μ„Έμ…˜μ€ 주둜 μ‚¬μš©μž 인증, μž₯λ°”κ΅¬λ‹ˆ 관리, μ‚¬μš©μž μ„€μ • λ“±κ³Ό 같이 μ„œλ²„ μΈ‘μ—μ„œ μ€‘μš”ν•œ 정보λ₯Ό μœ μ§€ν•  λ•Œ μ‚¬μš©λœλ‹€. μΏ ν‚€λŠ” 주둜 μ‚¬μš©μžμ˜ μ„ ν˜Έ μ„€μ •, μ‚¬μš©μž 행동 좔적 λ“±κ³Ό 같이 ν΄λΌμ΄μ–ΈνŠΈ μΈ‘μ—μ„œ μƒλŒ€μ μœΌλ‘œ κ°„λ‹¨ν•œ 정보λ₯Ό μœ μ§€ν•  λ•Œ μ‚¬μš©λœλ‹€.
크기 μ œν•œ 일반적으둜 μ„Έμ…˜ λ°μ΄ν…Œμ—λŠ” 큰 μ œν•œμ΄ μ—†λ‹€. 
ν•˜μ§€λ§Œ μ„œλ²„ λ©”λͺ¨λ¦¬λ‚˜ λ°μ΄ν„°λ² μ΄μŠ€μ˜ μš©λŸ‰μ— 따라 μ œν•œλ  수 μžˆλ‹€
κ°œλ³„ μΏ ν‚€μ˜ ν¬ν‚€λŠ” 보톡 μ œν•œμ΄ 있으며, λΈŒλΌμš°μ €λ§ˆλ‹€ λ‹€λ₯Ό 수 μžˆλ‹€.
일반적으둜 ν•œ 도메인당 μΏ ν‚€μ˜ 총 크기도 μ œν•œλ  수 μžˆλ‹€.
수λͺ… μ„Έμ…˜μ€ μ‚¬μš©μžκ°€ λΈŒλΌμš°μ €λ₯Ό λ‹«κ±°λ‚˜ μΌμ •μ‹œκ°„ λ™μ•ˆ ν™œλ™μ΄ μ—†λŠ” κ²½μš°μ— μ’…λ£Œλ  수 μžˆλ‹€. μΏ ν‚€λŠ” 만료 λ‚ μ§œλ₯Ό μ„€μ •ν•˜μ—¬ νŠΉμ • κΈ°κ°„ λ™μ•ˆ μœ μ§€λ  수 μžˆλ‹€.
만료 λ‚ μ§œλ₯Ό μ„€μ •ν•˜μ§€ μ•ŠμœΌλ©΄ λΈŒλΌμš°μ €κ°€ μ’…λ£Œλ  λ•ŒκΉŒμ§€ μœ μ§€λœλ‹€.

'JAVA' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

application 객체?  (0) 2023.11.28
μ»¬λ ‰μ…˜(Collection, List/Set/Map)  (0) 2023.09.26
클래슀(Class)와 객체(Object)  (0) 2023.08.17
객체지ν–₯μ–Έμ–΄λž€?  (0) 2023.08.17
λ©”μ„œλ“œ(Method)λž€?  (0) 2023.08.17