๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ287

[Java] ๋™์ผ์„ฑ, ๋™๋“ฑ์„ฑ Java์—์„œ๋Š” ๋‘ ๊ฐ์ฒด๊ฐ€ ๊ฐ™์€์ง€ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์ด 2๊ฐ€์ง€ ์žˆ์Œ (๋™์ผ์„ฑ & ๋™๋“ฑ์„ฑ) โœ… ๋™์ผ์„ฑ(Identity) - `==` ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋‘ ๊ฐ์ฒด๊ฐ€ ๋™์ผํ•œ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธ - ์™„์ „ํžˆ ๊ฐ™์€ ๊ฐ์ฒด ์ฆ‰, ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๊ฐ™์€ ๋ฉ”๋ชจ๋ฆฌ์ƒ์— ์œ„์น˜ํ•˜๋Š” ๊ฐ์ฒด์ผ ๋•Œ true ๋ฆฌํ„ด โœ… ๋™๋“ฑ์„ฑ(Equality) - `equals()` ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋‘ ๊ฐ์ฒด๊ฐ€ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๋™๋“ฑํ•œ์ง€ ํ™•์ธ -  ๋‘ ๊ฐ์ฒด๊ฐ€ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๋™์ผํ•  ๋•Œ true ๋ฆฌํ„ด - ๋™๋“ฑ์„ฑ ํŒ๋‹จ ๊ธฐ์ค€์€ ํด๋ž˜์Šค๋งˆ๋‹ค ๋ชจ๋‘ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์—, equals() ๋ฉ”์„œ๋“œ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•˜์—ฌ ํŒ๋‹จ ๐Ÿฅ equals() ๋ฉ”์„œ๋“œ - Object ํด๋ž˜์Šค์—์„œ ๊ธฐ๋ณธ์œผ๋กœ ์ œ๊ณต๋˜๋Š” ๋ฉ”์„œ๋“œpublic boolean equals(Object obj) { return (this .. 2024. 6. 26.
์ธํ„ฐ๋„ท ๋„คํŠธ์›Œํฌ โœ… IP (์ธํ„ฐ๋„ท ํ”„๋กœํ† ์ฝœ) - ์ธํ„ฐ๋„ท๋ง์„ ํ†ตํ•ด ์ •๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ›์œผ๋ ค๋ฉด IP์ฃผ์†Œ๋ฅผ ๋ถ€์—ฌ๋ฐ›์•„์•ผ ํ•œ๋‹ค. - ์ธํ„ฐ๋„ท ํ”„๋กœํ† ์ฝœ์ด๋ž€, ์ง€์ •ํ•œ IP ์ฃผ์†Œ์—๊ฒŒ ํŒจํ‚ท์ด๋ผ๋Š” ํ†ต์‹  ๋‹จ์œ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๊ทœ์•ฝ์„ ๋งํ•œ๋‹ค. - ํŒจํ‚ท์—๋Š” ์ถœ๋ฐœ์ง€IP์ฃผ์†Œ, ๋ชฉ์ ์ง€IP์ฃผ์†Œ ๋“ฑ์˜ ์ •๋ณด๊ฐ€ ๋‹ด๊ฒจ ์žˆ๋‹ค. - ์ธํ„ฐ๋„ท๋ง์— ํŒจํ‚ท์„ ๋˜์ง€๋ฉด ๋…ธ๋“œ -> ๋…ธ๋“œ -> ๋…ธ๋“œ ... ๋กœ ๋˜์ ธ์ง€๋ฉด์„œ ์ตœ์ข… ๋ชฉ์ ์ง€๋กœ ์ „๋‹ฌ๋œ๋‹ค.  โœ… ์ธํ„ฐ๋„ท ํ”„๋กœํ† ์ฝœ์˜ ํ•œ๊ณ„ ๐Ÿฅ ๋น„์—ฐ๊ฒฐ์„ฑ    - ํŒจํ‚ท์„ ๋ฐ›์„ ๋Œ€์ƒ์ด ์—†๊ฑฐ๋‚˜, ์„œ๋น„์Šค ๋ถˆ๋Šฅ ์ƒํƒœ์—ฌ๋„ ํŒจํ‚ท์€ ์ „์†ก๋œ๋‹ค.    - ์ „์†กํ•˜๋Š” ์ชฝ์€, ๋Œ€์ƒ ์„œ๋ฒ„๊ฐ€ ํŒจํ‚ท์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ์ธ์ง€ ์•Œ ์ˆ˜ ์—†๋‹ค. ๐Ÿฅ ๋น„์‹ ๋ขฐ์„ฑ    - ํŒจํ‚ท์ด ์œ ์‹ค๋˜๊ฑฐ๋‚˜, ์ˆœ์„œ๋Œ€๋กœ ์˜ค์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๋‹ค.๐Ÿฅ ๊ฐ™์€ IP๋ฅผ ์‚ฌ์šฉํ•˜๋Š”, ์„œ๋ฒ„์—์„œ ํ†ต์‹ ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋‘˜ ์ด.. 2024. 3. 18.
resources/data.sql ์ž๋™์œผ๋กœ ์‹คํ–‰๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ โœ… ํ”„๋กœ์ ํŠธ ํ™˜๊ฒฝ ์Šคํ”„๋ง๋ถ€ํŠธ ๋ฒ„์ „ 2.7.18 ์ด๊ณ , maven์„ ์‚ฌ์šฉํ•ด ๋นŒ๋“œํ–ˆ๋‹ค. org.springframework.boot spring-boot-starter-data-jpa mysql mysql-connector-java 5.1.48  โœ… ์—๋Ÿฌ ์ƒํ™ฉ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰์‹œ resources/data.sql ์— ์ž‘์„ฑํ•œ insert๋ฌธ์ด ์ž๋™์œผ๋กœ ์‹คํ–‰๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค.   โœ… ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• application.properties์— ์•„๋ž˜ ๋‘๊ฐœ์˜ ์„ค์ •๋“ค์„ ์ถ”๊ฐ€ํ•˜๋‹ˆ๊นŒ ํ•ด๊ฒฐ์ด ๋˜์—ˆ๋‹ค.spring.jpa.defer-datasource-initialization: truespring.sql.init.mode=always  ๋‚˜์™€ ๊ฐ™์€ ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ๋ฒ•์„ ์ ์–ด๋‘” ๋‹ค๋ฅธ ๋ธ”๋กœ๊ทธ ๊ธ€๋“ค์—์„œ๋Š”sp.. 2024. 3. 8.
jsp <form:errors> ์ถœ๋ ฅ ์•ˆ ๋˜๋Š” ๋ฌธ์ œ /login/loginForm.jsp ${message} ๋กœ๊ทธ์ธ LoginRequest.java import javax.validation.constraints.NotEmpty; public class LoginRequest { @NotEmpty(message = "userId is empty") private String userId; @NotEmpty(message = "userPassword is empty!") private String userPassword; public String getUserId() { return userId; } public String getUserPassword() { return userPassword; } } ์ปจํŠธ๋กค๋Ÿฌ ํ•ธ๋“ค๋Ÿฌ ๋ฉ”์„œ๋“œ์—์„œ, ๋กœ๊ทธ์ธ Post์š”์ฒญ ์‹คํŒจ.. 2024. 3. 4.
@ExceptionHandler, @ControllerAdvice โœ… ExceptionHandler - ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ํ•ธ๋“ค๋Ÿฌ - ํŠน์ • ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•œ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•จ - ์ง€์›ํ•˜๋Š” ๋ฉ”์„œ๋“œ ์•„๊ทœ๋จผํŠธ๊ฐ€ ์ผ๋ฐ˜ ํ•ธ๋“ค๋Ÿฌ๋ณด๋‹ค๋Š” ํ•œ์ •์ ์ž„ - ์˜ˆ์™ธ ๊ฐ์ฒด, ํ•ธ๋“ค๋Ÿฌ ๊ฐ์ฒด, ๋ชจ๋ธ ๋“ฑ (๊ณต์‹ ๋ฌธ์„œ ์ฐธ๊ณ ) ๋‹ค๋ฅธ ํ•ธ๋“ค๋Ÿฌ์—์„œ TestException์„ ๋˜์ง€๋ฉด, testErrorHandler๊ฐ€ ๋™์ž‘ํ•˜๊ณ  ์—๋Ÿฌ ํŽ˜์ด์ง€๋ฅผ ๋ฐ˜ํ™˜ - REST API์˜ ๊ฒฝ์šฐ ์ต์…‰์…˜ ํ•ธ๋“ค๋Ÿฌ ๋ฆฌํ„ด ํƒ€์ž…์œผ๋กœ ResponseEntity๋ฅผ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. โœ… ControllerAdvice - ํŠน์ • ์ปจํŠธ๋กค๋Ÿฌ ์•ˆ์—์„œ๊ฐ€ ์•„๋‹ˆ๋ผ, ๋ชจ๋“  ์ปจํŠธ๋กค๋Ÿฌ์— ๊ฑธ์ณ์„œ ExceptionHandler, InitBinder, ModelAttributes ๋ฅผ ์ ์šฉํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ ์‚ฌ์šฉ - @ContrllerAdvice ์†์„ฑ์œผ๋กœ ์ ์šฉํ•  ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. @Targ.. 2024. 3. 1.
@SessionAttribute, @SessionAttriubtes โœ… ๊ฐ์ฒด๋ฅผ ์„ธ์…˜์— ๋„ฃ์–ด์„œ ์‚ฌ์šฉํ•˜๊ธฐ์–ด๋–ค ์ •๋ณด๋ฅผ ์„ธ์…˜์— ๋„ฃ๊ณ  ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์œผ๋ฉด๋ฉ”์„œ๋“œ ํ•ธ๋“ค๋Ÿฌ ํŒŒ๋ผ๋ฏธํ„ฐ์— HttpSession์„ ๋ฐ”๋กœ ๋ฐ›์•„์„œ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค.session.setAttribute(ํ‚ค,๋ฐธ๋ฅ˜)  โœ… @SessionAttribute@SessionAttribute ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด,session.setAttribute() ๋ฅผ ํ•˜์ง€ ์•Š์•„๋„ ์ž๋™์œผ๋กœ ๊ฐ์ฒด๋ฅผ ์„ธ์…˜์— ๋„ฃ์–ด์ค€๋‹ค.   โœ… @ModelAttributeModelAttribute๋Š” ์„ธ์…˜์— ์žˆ๋Š” ๊ฐ’๋“ค์„ ์กฐํ•ฉํ•ด์„œ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด์ค„ ์ˆ˜๋„ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ์—ฌ๋Ÿฌ ํŽ˜์ด์ง€์—์„œ ํผ๋ฐ์ดํ„ฐ๋กœ ์ž…๋ ฅ๋ฐ›์•˜๋˜ key, value ์Œ์„ ์„ธ์…˜์— ์ €์žฅํ•ด๋‘์—ˆ๋‹ค๊ฐ€ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.ํŽ˜์ด์ง€1์—์„œ id๋ฐ›๊ณ  ์„ธ์…˜์— ๋„ฃ์–ด๋‘๊ณ , ๋‹ค์Œ ํŽ˜์ด์ง€2์—์„œ pwd ๋ฐ›๊ณ  ์„ธ์…˜์— ๋„ฃ์–ด๋‘๊ณ ,๋ชจ๋ธ์–ดํŠธ๋ฆฌ๋ทฐํŠธ๊ฐ€ ์„ธ.. 2024. 3. 1.
728x90