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

๊ฐœ์ธ ๊ณต๋ถ€84

[Java] equals(), hashCode() โœ… equals() - java.lang.Object ํด๋ž˜์Šค์— ์ •์˜๋˜์–ด ์žˆ๋‹ค.package java.lang;...public class Object { ... public boolean equals(Object obj) { return (this == obj); } ...}  - ๋ชจ๋“  ์ž๋ฐ” ๊ฐ์ฒด๋ผ๋ฆฌ ๋™๋“ฑ์„ฑ์œผ์„ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๋„๋ก, ์ตœ์ƒ์œ„ ํด๋ž˜์Šค์ธ Object์— ์ •์˜๋˜์–ด ์žˆ๋Š” ๋ฉ”์„œ๋“œ์ด๋‹ค.    (๋™๋“ฑ์„ฑ์ด๋ž€? ๋‘ ๊ฐ์ฒด๊ฐ€ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๋™์ผํ•œ ๊ฒƒ์„ ๋งํ•œ๋‹ค. ๐Ÿ“„[Java] ๋™์ผ์„ฑ, ๋™๋“ฑ์„ฑ) - ์ฐธ์กฐ๊ฐ’์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™๋“ฑ์„ฑ์„ ํŒ๋‹จํ•˜๋„๋ก ๊ตฌํ˜„๋˜์–ด ์žˆ๋‹ค.- ๋‹ค์‹œ ๋งํ•ด, ๋‘ ๊ฐ์ฒด์˜ ์ฐธ์กฐ๊ฐ’์ด ๊ฐ™์œผ๋ฉด(๋ฌผ๋ฆฌ์ ์œผ๋กœ ๊ฐ™์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋ฉด) true๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค. - ๋‘ ๊ฐ์ฒด๊ฐ€ .. 2023. 10. 25.
[Java] BlockingQueue โœ… BlockingQueue - ํ๊ฐ€ ๊ฝ‰ ์ฐผ์„ ๋•Œ Object๋ฅผ ์‚ฝ์ž…ํ•˜๋ ค๊ณ  ํ•  ๋•Œ๋Š” ๊ณต๊ฐ„์ด ์ƒ๊ธธ ๋•Œ๊นŒ์ง€ waitํ•˜๊ณ , ํ๊ฐ€ ๋น„์—ˆ์„ ๋•Œ Object๋ฅผ ๊บผ๋‚ด๋ ค๊ณ  ํ•  ๋•Œ๋Š” ํ์— ์ƒˆ๋กœ์šด Object๊ฐ€ ์‚ฝ์ž…๋  ๋•Œ๊นŒ์ง€ waitํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํ์ด๋‹ค. - Thread-safeํ•˜๋‹ค. - ์ฒ˜์Œ์—๋Š” Producer-Consumer Queue๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์กŒ๋‹ค๊ณ  ํ•œ๋‹ค. โœ… BlockingQueue Methods - BlockingQueue์˜ ๋ฉ”์„œ๋“œ๋“ค์€ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋А๋ƒ์— ๋”ฐ๋ผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ถ„๋ฅ˜ํ•  ์ˆ˜ ์žˆ๋‹ค. Throws Exception Special value Blocks Times out Insert add(e) offer(e) put(e) offer(e, time, unit) Rem.. 2023. 10. 18.
HTTP form data ์ „์†ก HTTP request message๋Š” HTTP header์™€ HTTP body๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค. (์ฐธ๊ณ ๋กœ, HTTP ๋ฉ”์‹œ์ง€์— ๋Œ€ํ•œ ๋” ์ž์„ธํ•œ ์„ค๋ช…์€ ์ด์ „์— ๋”ฐ๋กœ ์ •๋ฆฌํ•ด๋’€์—ˆ๋‹ค.) ํ—ค๋”์—๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ํ•„์š”ํ•œ ์ •๋ณด๋“ค์ด ๋‹ด๊ธฐ๋Š”๋ฐ, ์ด ์ค‘ Content-Type์€ HTTP body์— ๋‹ด๊ธด ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด ๋ฌด์—‡์ธ์ง€ ๋ช…์‹œํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. Content-Type์˜ ์ข…๋ฅ˜๋กœ๋Š” ๋Œ€ํ‘œ์ ์œผ๋กœ text/html, text/css, text/javascript, application/json, application/x-www-urlencoded, multipart/form-data ๋“ฑ์ด ์žˆ๋‹ค. ์ด ์ค‘์—์„œ, ํŒŒ์ผ ์ „์†ก์— ์‚ฌ์šฉ๋˜๋Š” multipart format์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ณ ์ž ํ•œ๋‹ค. (Content-Type: multipart/f.. 2023. 10. 4.
[Java] Java TCP socket programming โœ… ์†Œ์ผ“ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ž€? - ํ”„๋กœ์„ธ์Šค ๊ฐ„์˜ ํ†ต์‹ ์— ์‚ฌ์šฉ๋˜๋Š” ์–‘ ๋๋‹จ(endpoint)์ธ ์†Œ์ผ“์„ ์ด์šฉํ•œ ํ†ต์‹  ํ”„๋กœ๊ทธ๋ž˜๋ฐ  - ํ”„๋กœ์„ธ์Šค๋ผ๋ฆฌ๋Š” ํ†ต์‹ ์„ ํ•  ๋•Œ, ๊ฐ ํ”„๋กœ์„ธ์Šค์˜ ์†Œ์ผ“๋ผ๋ฆฌ ์—ฐ๊ฒฐํ•˜๊ณ , ์†Œ์ผ“์„ ํ†ตํ•ด ํ†ต์‹ ํ•œ๋‹ค. - ์†Œ์ผ“๋ผ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ์—ฐ๊ฒฐํ†ต๋กœ๋Š” ์ž…๋ ฅ์ŠคํŠธ๋ฆผ๊ณผ ์ถœ๋ ฅ์ŠคํŠธ๋ฆผ์ด๋‹ค. - ํ†ต์‹ ํ•˜๋Š” ๋‘ ์†Œ์ผ“์˜ ์ž…์ถœ๋ ฅ์ŠคํŠธ๋ฆผ์€ ๊ต์ฐจ ์—ฐ๊ฒฐ๋˜์–ด, ํ•œ์ชฝ ์†Œ์ผ“์˜ ์ถœ๋ ฅ์ด ๋‹ค๋ฅธ์ชฝ ์†Œ์ผ“์˜ ์ž…๋ ฅ์ด ๋œ๋‹ค.  โœ… TCP socket programming ํŠน์ง• - ์†Œ์ผ“๋ผ๋ฆฌ ๋จผ์ € ์—ฐ๊ฒฐํ•˜๊ณ  ๋‚˜์„œ ํ†ต์‹ ์„ ์‹œ์ž‘ํ•œ๋‹ค. (connection-oriented) - ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋Š” 1:1๋กœ ํ†ต์‹ ํ•œ๋‹ค. - ๋ฐ์ดํ„ฐ๋ฅผ byte-stream์œผ๋กœ ์ฃผ๊ณ ๋ฐ›๋Š”๋‹ค. - ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก์„ ํ•œ๋‹ค. - ์ž๋ฐ”์—์„œ๋Š” TCP ์†Œ์ผ“ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์œ„ํ•ด Socket,.. 2023. 9. 19.
Facade ์š”์ƒˆ ์ž๋ฐ” Maven ํ”„๋กœ์ ํŠธ์—์„œ ๋กœ๊ทธ๋ฅผ ์ฐ๊ธฐ ์œ„ํ•ด์„œ @Sl4fj ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉ, logback ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์˜์กด์„ฑ์„ ์ฃผ์ž…๋ฐ›์•„ ์‚ฌ์šฉ์ค‘์ด๋‹ค. logback์ด Sl4fj์˜ ๊ตฌํ˜„์ฒด์ด๊ณ , Sl4fj๊ฐ€ ์ผ์ข…์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ผ๋Š” ์‚ฌ์‹ค๋งŒ ์–ด๋ ดํ’‹์ด ์•Œ๊ณ  ์žˆ์—ˆ๋Š”๋ฐ, ๋” ์ •ํ™•ํžˆ ๋”ฐ์ง€๋ฉด Slf4j๋Š” facade๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ facade์— ๋Œ€ํ•ด ๊ฐ€๋ณ๊ฒŒ ๊ณต๋ถ€ํ•ด๋ณด๊ณ , ๊ธฐ๋ก์„ ๋‚จ๊ฒจ๋ณด๊ณ ์ž ํ•œ๋‹ค. โœ… Facade ํŒจํ„ด์ด๋ž€? - ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์ž์ฃผ ์“ฐ์ด๋Š”, ์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™ ๋””์ž์ธ ํŒจํ„ด ์ค‘ ํ•˜๋‚˜ โœ… Facade๋ž€? - ์†Œํ”„ํŠธ์›จ์–ด์˜ ์–ด๋–ค ์ปค๋‹ค๋ž€ ์ฝ”๋“œ ๋ถ€๋ถ„(์˜ˆ๋ฅผ ๋“ค๋ฉด ํด๋ž˜์Šค)์— ๋Œ€ํ•œ ๊ฐ„๋žตํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฐ์ฒด - Facade๋Š” "์™ธ๊ด€" ๋˜๋Š” "๊ฑด๋ฌผ ์ •๋ฉด" ์ด๋ผ๋Š” ์˜๋ฏธ์ด๋‹ค. - facade๋Š” ๋ณต์žกํ•˜๊ฒŒ ์ž‘์„ฑ๋œ ์ธ.. 2023. 9. 16.
[Java] ์ž๋ฐ” ๋กœ๊น…(Logging) โœ… ๋กœ๊น…์ด๋ž€? - ์‹œ๊ฐ„์— ๋”ฐ๋ผ ์‹œ์Šคํ…œ์˜ ์ƒํƒœ์™€ ์ด๋ฒคํŠธ ์ •๋ณด๋ฅผ ๊ธฐ๋กํ•œ ๋ฐ์ดํ„ฐ์ธ ๋กœ๊ทธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ณผ์ •์„ ๋งํ•œ๋‹ค. - System.out.println()์„ ์ด์šฉํ•˜์—ฌ ๋กœ๊น…ํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ, log4j, logback ๋“ฑ์˜ ๋กœ๊น… ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์“ด๋‹ค. ๐Ÿฅ System.out.println() ๋Œ€์‹  ๋กœ๊น… ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ? 1๏ธโƒฃ ์„ฑ๋Šฅ ๊ด€๋ จ- sout ๋‚ด๋ถ€์—์„œ๋Š” newLine() ๋ฉ”์„œ๋“œ๊ฐ€ ์‹คํ–‰๋˜๋Š”๋ฐ, ํ•ด๋‹น ๋ฉ”์„œ๋“œ์—๋Š” synchronized ํ‚ค์›Œ๋“œ๊ฐ€ ๋ถ™์–ด์žˆ๋‹ค.- ์ฆ‰, ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ ํ™˜๊ฒฝ์˜ ํŠน์ • ์Šค๋ ˆ๋“œ์—์„œ newLine()์ด ์‹คํ–‰๋˜๋Š” ๋„์ค‘์—๋Š” ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ์—์„œ newLine()์„ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์—†๋‹ค. - ๋”ฐ๋ผ์„œ System.out.println()์„ ์‚ฌ์šฉํ•˜๋ฉด ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.  2๏ธโƒฃ ๋กœ๊ทธ ๊ด€๋ฆฌ - printl.. 2023. 9. 6.
728x90