Notice
Recent Posts
Link
Today
Total
10-06 00:17
๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก์ „์ฒด ๊ธ€ (74)

dingdong coding

Singleton Pattern

ํ•„์š”์„ฑ ๋จผ์ € Singleton ํŒจํ„ด์„ ์™œ ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š”์ง€์— ๋Œ€ํ•ด ์•Œ์•„๋ด…์‹œ๋‹ค. ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ํ•œ ๋ช…์˜ ์œ ์ €๊ฐ€ ์•„๋‹Œ ์—ฌ๋Ÿฌ ์œ ์ €๊ฐ€ ์ด์šฉํ•˜๋ฉฐ ๊ฐ™์€ ์„œ๋น„์Šค๋ฅผ ๋™์‹œ ๋‹ค๋ฐœ์ ์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์„ ์ ์šฉํ•˜์ง€ ์•Š์€ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋ผ๋ฉด ์š”์ฒญ์„ ๋ฐ›์„ ๋•Œ ๋งˆ๋‹ค ์š”์ฒญ ๋ฐ›์€ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์†Œ๋ฉธ์‹œํ‚ค๋Š” ๊ณผ์ •์„ ๋ฌด์ˆ˜ํžˆ ๋ฐ˜๋ณตํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ ์‹ฌํ•œ ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋˜๋ฉฐ ์ด์™€ ๊ฐ™์€ ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Singleton Pattern • ๊ฐ์ฒด(์ธ์Šคํ„ด์Šค)๊ฐ€ ์˜ค์ง 1๊ฐœ๋งŒ ์กด์žฌํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. • ๊ฐ์ฒด๊ฐ€ ํ˜„์žฌ JVM์•ˆ์— ํ•˜๋‚˜๋งŒ ์žˆ์–ด์•ผํ•˜๋Š” ํŒจํ„ด • private ์ƒ์„ฑ์ž ์™ธ๋ถ€์—์„œ new ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐ์ฒด๋ฅผ 2๊ฐœ ์ด์ƒ ์ƒ์„ฑํ•˜์ง€ ๋ชปํ•˜๋„๋ก ๋ง‰์Šต๋‹ˆ๋‹ค. ..

๐ŸฐJAVA/Design Pattern 2022. 6. 21. 21:46
[JAVA ] Collection

Collection Framework ? • ๊ฐ์ฒด์˜ ๊ทธ๋ฃน • ์ž๋ฐ”์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. • Collection ์ธํ„ฐํŽ˜์ด์Šค๋Š” List, Set, Queue ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ํ™•์žฅ๋˜๋Š” ๋ฃจํŠธ ์ธํ„ฐํŽ˜์ด์Šค • Java์—์„œ๋Š” ๋ชจ๋“  Collection ํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํฌํ•จํ•˜๋Š” ์ง‘ํ•ฉ์ธ "Collection Framework"๋ผ๋Š” ๊ฐœ๋…์ด ์ •์˜ • ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ์—๋Š” ์ปฌ๋ ‰์…˜์„ ๋‚˜ํƒ€๋‚ด๊ณ  ์กฐ์ž‘ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํด๋ž˜์Šค ๋ฐ ์ธํ„ฐํŽ˜์ด์Šค ์ง‘ํ•ฉ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. Java์—์„œ ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ๋ž€ ๋‹ค์ˆ˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ณ  ํšจ๊ณผ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํ‘œ์ค€ํ™”๋œ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜๋Š” ํด๋ž˜์Šค์˜ ์ง‘ํ•ฉ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌ์กฐํ™”ํ•˜์—ฌ ํด๋ž˜์Šค๋กœ ๊ตฌํ˜„ํ•ด ๋†“์€ ๊ฒƒ ์ปฌ๋ ‰์…˜ ์ธํ„ฐํŽ˜์ด์Šค 1) ..

๐ŸฐJAVA/Basic 2022. 6. 20. 12:11
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Level 2

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Level1 ์ „์ฒด ํ’€์ด JadenCase ๋ฌธ์ž์—ด ๋งŒ๋“ค๊ธฐ JadenCase๋ž€ ๋ชจ๋“  ๋‹จ์–ด์˜ ์ฒซ ๋ฌธ์ž๊ฐ€ ๋Œ€๋ฌธ์ž์ด๊ณ , ๊ทธ ์™ธ์˜ ์•ŒํŒŒ๋ฒณ์€ ์†Œ๋ฌธ์ž์ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. ๋‹จ, ์ฒซ ๋ฌธ์ž๊ฐ€ ์•ŒํŒŒ๋ฒณ์ด ์•„๋‹ ๋•Œ์—๋Š” ์ด์–ด์ง€๋Š” ์•ŒํŒŒ๋ฒณ์€ ์†Œ๋ฌธ์ž๋กœ ์“ฐ๋ฉด ๋ฉ๋‹ˆ๋‹ค. (์ฒซ ๋ฒˆ์งธ ์ž…์ถœ๋ ฅ ์˜ˆ ์ฐธ๊ณ ) ๋ฌธ์ž์—ด s๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, s๋ฅผ JadenCase๋กœ ๋ฐ”๊พผ ๋ฌธ์ž์—ด์„ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด์ฃผ์„ธ์š”. ์ œํ•œ ์กฐ๊ฑด s๋Š” ๊ธธ์ด 1 ์ด์ƒ 200 ์ดํ•˜์ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. s๋Š” ์•ŒํŒŒ๋ฒณ๊ณผ ์ˆซ์ž, ๊ณต๋ฐฑ๋ฌธ์ž(" ")๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์ˆซ์ž๋Š” ๋‹จ์–ด์˜ ์ฒซ ๋ฌธ์ž๋กœ๋งŒ ๋‚˜์˜ต๋‹ˆ๋‹ค. ์ˆซ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๋‹จ์–ด๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๊ณต๋ฐฑ๋ฌธ์ž๊ฐ€ ์—ฐ์†ํ•ด์„œ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. # JadenCase ๋ฌธ์ž์—ด ๋งŒ๋“ค๊ธฐ def solution(s): answer = '' arr..

๐Ÿ”ตCoding Test/Algorithm 2022. 6. 19. 01:04
[ ์ด๊ฒƒ์ด ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋‹ค with ํŒŒ์ด์ฌ ] ๊ตฌํ˜„ ๋ฌธ์ œ

1. ๋Ÿญํ‚ค ์ŠคํŠธ๋ ˆ์ดํŠธ • ๋ฌธ์ œ ๊ฒŒ์ž„์˜ ์•„์›ƒ๋ณต์„œ ์บ๋ฆญํ„ฐ๋Š” ํ•„์‚ด๊ธฐ์ธ '๋Ÿญํ‚ค ์ŠคํŠธ๋ ˆ์ดํŠธ' ๊ธฐ์ˆ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ์ˆ ์€ ๋งค์šฐ ๊ฐ•๋ ฅํ•œ ๋Œ€์‹ ์— ๊ฒŒ์ž„ ๋‚ด์—์„œ ์ ์ˆ˜๊ฐ€ ํŠน์ • ์กฐ๊ฑด์„ ๋งŒ์กฑํ•  ๋•Œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠน์ •์กฐ๊ฑด์ด๋ž€ ํ˜„์žฌ ์บ๋ฆญํ„ฐ ์ ์ˆ˜๋ฅผ N์ด๋ผ๊ณ  ํ•  ๋•Œ ์ž๋ฆฟ์ˆ˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ ์ˆ˜ N์„ ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆ„์–ด ์™ผ์ชฝ ๋ถ€๋ถ„์˜ ๊ฐ ์ž๋ฆฟ์ˆ˜ ํ•ฉ๊ณผ ์˜ค๋ฅธ์ชฝ ๋ถ€๋ถ„์˜ ๊ฐ ์ž๋ฆฟ์ˆ˜์˜ ํ•ฉ์„ ๋”ํ•œ ๊ฐ’์ด ๋™์ผํ•œ ์ƒํ™ฉ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ˜„์žฌ ์ ์ˆ˜๊ฐ€ 123,402๋ผ๋ฉด ์™ผ์ชฝ ๋ถ€๋ถ„์˜ ์ž๋ฆฟ์ˆ˜์˜ ํ•ฉ์€ 1 + 2 + 3, ์˜ค๋ฅธ์ชฝ ๋ถ€๋ถ„์˜ ๊ฐ ์ž๋ฆฟ์ˆ˜์˜ ํ•ฉ์€ 4 + 0 + 2์ด๋ฏ€๋กœ ๋‘ ํ•ฉ์ด 6์œผ๋กœ ๋™์ผํ•˜์—ฌ ๋Ÿญํ‚ค ์ŠคํŠธ๋ ˆ์ดํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์ ์ˆ˜ N์ด ์ฃผ์–ด์ง€๋ฉด ๋Ÿญํ‚ค ์ŠคํŠธ๋ ˆ์ดํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ์ธ์ง€ ์•„๋‹Œ์ง€๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š” • ์ž…๋ ฅ์กฐ..

Spring Framework, Spring Boot

Spring ? • ์ž๋ฐ” ์–ธ์–ด ๊ธฐ๋ฐ˜( ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด )์˜ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์˜ ์ „ ๊ณผ์ •์„ ๋น ๋ฅด๊ณ  ํŽธ๋ฆฌํ•˜๋ฉฐ ํšจ์œจ์ ์œผ๋กœ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค. • ์ดˆ๊ธฐ์— ๊ธฐ๋ณธ ์„ค์ •๊ณผ ๊ธฐ์ˆ ์„ ์ž˜ ์„ค์ •ํ•˜๋ฉด ์Šคํ”„๋ง๊ณผ ๊ด€๋ จ๋œ ์ฝ”๋“œ๋‚˜ API์— ๋Œ€ํ•ด ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฑฐ์˜ ์‹ ๊ฒฝ ์“ธ ์ผ์ด ์—†๋‹ค. • ์ด๋Š” Spring Boot, Spring Framework์— ๋Œ€ํ•ด ์•Œ์•„๋ณธ๋‹ค๋ฉด Spring์ด ์–ผ๋งˆ๋‚˜ ํŽธ๋ฆฌํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ด์ฃผ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๋‹ค. • spring framework, spring boot๋ฅผ ๋ชจ๋‘ ํฌํ•จํ•œ ์Šคํ”„๋ง ์ƒํƒœ๊ณ„ • ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด๊ฐ€ ๊ฐ€์ง„ ํŠน์ง•์„ ์‚ด๋ ค๋‚ด ์ข‹์€ ๊ฐ์ฒด์ง€ํ–ฅ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค. • Spring์˜ ํ•ต์‹ฌ ํŠน์ง•์ธ ์ œ์–ด์˜ ์—ญ์ „(Ioc), ์˜์กด๊ด€๊ณ„ ์ฃผ์ž…(DI)์„ ์ด์šฉํ•ด ๋‹คํ˜•์„ฑ์„ ์ž˜ ์ง€ํ‚ค๋ฉฐ..

๐ŸSpring/Basic 2022. 6. 18. 10:24
Spring Bean, Spring Container

์Šคํ”„๋ง ๋นˆ(Spring Bean) ์ด๋ž€? ๋นˆ ( Bean ) Spring Ioc ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ์ž๋ฐ” ๊ฐ์ฒด. ์ฆ‰, ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์— ์˜ํ•ด์„œ ์ž๋ฐ” ๊ฐ์ฒด๊ฐ€ ๋งŒ๋“ค์–ด ์ง€๊ฒŒ ๋˜๋ฉด ์ด ๊ฐ์ฒด๋ฅผ ์Šคํ”„๋ง์€ ์Šคํ”„๋ง ๋นˆ์ด๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ œ์–ด์˜ ์—ญ์ „ Ioc ๊ธฐ์กด์˜ Java ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  new๋กœ ์›ํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ์ง์ ‘ ์ƒ์„ฑํ•˜์—ฌ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ Spring์—์„œ๋Š” new๋ฅผ ์ด์šฉํ•˜์—ฌ ์ƒ์„ฑํ•œ ๊ฐ์ฒด๊ฐ€ ์•„๋‹Œ, Spring์— ์˜ํ•ด ๊ด€๋ฆฌ๋˜์–ด์ง€๋Š” ์ž๋ฐ” ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, Spring์— ์˜ํ•ด ์ƒ์„ฑ๋˜๊ณ  ๊ด€๋ฆฌ๋˜๋Š” ์ž๋ฐ” ๊ฐ์ฒด๋ฅผ Bean์ด๋ผ ํ•ฉ๋‹ˆ๋‹ค. Spring Bean, Ioc Container์— ๋“ฑ๋กํ•˜๋Š” ๋ฐฉ๋ฒ• 1. Annotation ์ด์šฉ • @Component ์• ๋…ธํ…Œ์ด์…˜์ด ์žˆ๋‹ค๋ฉด ์Šคํ”„๋ง ๋นˆ์œผ๋กœ ์ž๋™ ๋“ฑ๋ก ๋ฉ..

๐ŸSpring/Basic 2022. 6. 17. 12:51