Hamutaro - Hamtaro 4

Java 23

[JAVA] ์ž๋ฐ” ์ปฌ๋ ‰์…˜(Collection) ํ”„๋ ˆ์ž„์›Œํฌ

์ž๋ฐ” ์ปฌ๋ ‰์…˜(Collection) ํ”„๋ ˆ์ž„์›Œํฌ๋ž€? ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ํด๋ž˜์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” API๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ €์žฅ, ๊ฒ€์ƒ‰, ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ๋ฅผ ์ œ๊ณต ์ฃผ์š” Collection (1) Collection ์ธํ„ฐํŽ˜์ด์ŠคList : ์ˆœ์„œ๊ฐ€ ์žˆ๋Š” ์š”์†Œ์˜ ์ง‘ํ•ฉ, ์ค‘๋ณต ํ—ˆ์šฉArrayList : ๋™์  ๋ฐฐ์—ด, index๋ฅผ ํ†ตํ•œ ๋น ๋ฅธ ์ ‘๊ทผ ๊ฐ€๋Šฅ, ์‚ฝ์ž…๊ณผ ์‚ญ์ œ๊ฐ€ ๋А๋ฆผLinkedList : ์ด์ค‘ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ, ์‚ฝ์ž…๊ณผ ์‚ญ์ œ๊ฐ€ ๋น ๋ฆ„, index๋ฅผ ํ†ตํ•œ ์ ‘๊ทผ์ด ๋А๋ฆผSet : ์ˆœ์„œ๊ฐ€ ์—†์Œ, ์ค‘๋ณต ๋ถˆ๊ฐ€๋ŠฅHashSet : ํ•ด์‹œ ํ…Œ์ด๋ธ” ๊ธฐ๋ฐ˜, ์ˆœ์„œ ๋ณด์žฅ ๋˜์ง€ ์•Š์Œ, ๋น ๋ฅธ ๊ฒ€์ƒ‰๊ณผ ์‚ฝ์ž…LinkedHashSet : ํ•ด์‹œ ํ…Œ์ด๋ธ”๊ณผ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž…๋ ฅ๋œ ์ˆœ์„œ๋ฅผ ์œ ์ง€ํ•จTreeSet : ์ •๋ ฌ๋œ ์ง‘ํ•ฉQueue : ์š”์†Œ๋ฅผ FIFO ๋ฐฉ..

Java 2022.01.18

[JAVA] Wrapper Class

Wrapper Class๋ž€? 8๊ฐœ์˜ ๊ธฐ๋ณธ ํƒ€์ž…์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ์ฒด(Object)๋กœ ํฌ์žฅํ•ด์ฃผ๋Š” ํด๋ž˜์ŠคWrapper Class๋Š” ๊ฐ๊ฐ์˜ ํƒ€์ž…์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ธ์ˆ˜๋กœ ์ „๋‹ฌ๋ฐ›์•„, ํ•ด๋‹น๊ฐ’์„ ๊ฐ€์ง€๋Š” ๊ฐ์ฒด๋กœ ๋งŒ๋“ค์–ด ์คŒ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ํƒ€์ž…Wrapper ClassbyteByteshortShortintIntegerlongLongfloatFloatdoubleDoublecharCharacterbooleanBoolean  Wrapper Class์˜ ์ฃผ์š” ๋ฉ”์†Œ๋“œ 'Integer' ํด๋ž˜์Šค์˜ 'parseInt()' ๋ฉ”์†Œ๋“œ๋Š” ๋ฌธ์ž์—ด์„ ์ •์ˆ˜๋กœ ๋ณ€ํ™˜ํ•จString str = "123";int number = Integer.parseInt(str); // ๋ฌธ์ž์—ด "123"์„ ์ •์ˆ˜ 123์œผ๋กœ ๋ณ€ํ™˜ Wrapper Class์˜ ํŠน์ง• 1. ..

Java 2022.01.14

[JAVA] ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์ด๋ž€?

์‹ฑ๊ธ€ํ†ค ํŒจํ„ด(singleton pattern) ํ•˜๋‚˜์˜ ํด๋ž˜์Šค์— ์˜ค์ง ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋งŒ ๊ฐ€์ง€๋Š” ํŒจํ„ด๋ณดํ†ต ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ๋ชจ๋“ˆ์— ์‚ฌ์šฉ๋จconst URL = 'DB์ฃผ์†Œ'const createConnection = url => ({"url" : url})class DB { constructor(url) { if(!DB.instance){ DB.instance = createConnection(url) } return DB.instance } connect(){ return this.instance }}const a = new DB(URL)const b = new DB(URL)console.log(a===b)-> DB.instance ์ธ์Šคํ„ด์Šค..

Java 2022.01.11

[JAVA] ํ”„๋กœ์„ธ์Šค(Process)์™€ ์Šค๋ ˆ๋“œ(Thread)

ํ”„๋กœ์„ธ์Šค (Process) 1. ์ •์˜์šด์˜์ฒด์ œ์—์„œ ์‹คํ–‰์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์˜ ์ธ์Šคํ„ด์Šคํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋Š” ๋…๋ฆฝ๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ๊ณต์œ ํ•˜์ง€ ์•Š์Œํ”„๋กœ์„ธ์Šค๋Š” ์„œ๋กœ ๋…๋ฆฝ์ ์ž„ -> ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒจ๋„ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์— ์˜ํ–ฅ ์—†์Œ2. ๋ฉ”๋ชจ๋ฆฌ์™€ ์ž์›๊ด€๋ฆฌ๊ฐ ํ”„๋กœ์„ธ์Šค๋Š” ๋…๋ฆฝ๋œ ์ฃผ์†Œ ๊ณต๊ฐ„(๋ฉ”๋ชจ๋ฆฌ)์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋กœ ๊ณต์œ ํ•˜์ง€ ์•Š์Œ์šด์˜์ฒด์ œ์— ์˜ํ•ด ๋ณดํ˜ธ๋˜์–ด ์žˆ์Œํ”„๋กœ์„ธ์Šค๊ฐ„์˜ ํ†ต์‹ ์€ ์ƒ๋Œ€์ ์œผ๋กœ ๋ณต์žกํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์ด๋ฃจ์–ด์ง (ex.ํŒŒ์ดํ”„, ์†Œ์ผ“ ๋“ฑ)3. ์‹คํ–‰ ๋ฐ ์„ฑ๋Šฅํ”„๋กœ์„ธ์Šค๊ฐ„์˜ Context Switching์€ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ํฌ๋ฉฐ, ๋ฉ”๋ชจ๋ฆฌ์™€ CPU ์ž์› ์†Œ๋ชจ๋„ ๋งŽ์Œํ”„๋กœ์„ธ์Šค๋Š” ์šด์˜์ฒด์ œ์—์„œ ํ• ๋‹น๋œ ์ž์›์„ ๋…๋ฆฝ์ ์œผ๋กœ ์‚ฌ์šฉํ•จ๋‹ค์ค‘ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‚ฌ์šฉํ•œ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด ํฌ์ง€๋งŒ ์•ˆ์ •์ ์ž„ ํ”„๋กœ์„ธ์Šค๋Š” ์‹œ์Šคํ…œ ์ž์›..

Java 2022.01.11

[JAVA] ์ž…์ถœ๋ ฅ(I/O) ๋ณด์กฐ ์ŠคํŠธ๋ฆผ : BufferedReader, BufferedWriter

https://docs.oracle.com/javase/tutorial/essential/io/streams.html Essential Java Classes > Basic I/O)" data-og-description="The Java Tutorials have been written for JDK 8. Examples and practices described in this page don't take advantage of improvements introduced in later releases and might use technology no longer available. See Java Language Changes for a summary of update..

Java 2022.01.11

[JAVA] ์ ‘๊ทผ์ œ์–ด์ž (public, protected, default, private)

์ ‘๊ทผ์ œ์–ด์ž (Access Modifiers)ํด๋ž˜์Šค, ๋ฉ”์„œ๋“œ, ๋ณ€์ˆ˜ ๋“ฑ์— ๋Œ€ํ•œ ์ ‘๊ทผ ๊ถŒํ•œ์„ ์„ค์ •ํ•˜๋Š”๋ฐ ์‚ฌ์šฉํด๋ž˜์Šค ์™ธ๋ถ€์—์„œ ํ•ด๋‹น ๋ฉค๋ฒ„์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ”์œ„๋ฅผ ์ œํ•œํ•˜๊ฑฐ๋‚˜ ํ—ˆ์šฉJava์˜ ์ ‘๊ทผ์ œ์–ด์ž๋Š” public, protected, default, private 4๊ฐ€์ง€ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค public public์ด ์ง€์ •๋œ ํด๋ž˜์Šค, ๋ฉ”์„œ๋“œ, ๋ณ€์ˆ˜๋Š” ์–ด๋””์„œ๋‚˜ ์ ‘๊ทผ ๊ฐ€๋Šฅ๋‹ค๋ฅธ ํŒจํ‚ค์ง€์— ์žˆ๋Š” ํด๋ž˜์Šค์—์„œ๋„ ์ ‘๊ทผ ๊ฐ€๋Šฅ์ฃผ๋กœ ๋‹ค๋ฅธ ํด๋ž˜์Šค๋‚˜ ํŒจํ‚ค์ง€์—์„œ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์žˆ๋Š” API๋‚˜ ์œ ํ‹ธ๋ฆฌํ‹ฐ ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ์— ์‚ฌ์šฉpublic class MyClass { public int publicVariable; public void publicMethod() { System.out.println("This is a p..

Java 2022.01.11

[JAVA] ๊ฐ์ฒด ์ง€ํ–ฅ๊ณผ ์ ˆ์ฐจ ์ง€ํ–ฅ์˜ ํŠน์ง•๊ณผ ์ฐจ์ด์ 

๊ฐ์ฒด์ง€ํ–ฅ(OOP-Object Oriented Programming)์‚ฌ๋žŒ์˜ ์‚ฌ๊ณ ์™€ ๊ฐ€์žฅ ๋น„์Šทํ•˜๊ฒŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ƒ์„ฑ ๋œ ๊ธฐ๋ฒ•๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ์ฒด๋กœ ์ทจ๊ธ‰ํ•˜์—ฌ ๊ฐ์ฒด๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ํ†ตํ•ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ƒ์†์„ ํ†ตํ•œ ์ฝ”๋“œ ์žฌํ™œ์šฉ์ฝ”๋“œ ๋ณ€๊ฒฝ์ด ์šฉ์ด์ง๊ด€์ ์ธ ์ฝ”๋“œ ๋ถ„์„๊ฐœ๋ฐœ ์†๋„ ํ–ฅ์ƒ๊ฐ์ฒด(Object)๋ž€?- ๊ฐ์ฒด๋Š” ๋ฐ์ดํ„ฐ์™€ ๊ทธ ๋ฐ์ดํ„ฐ์— ๊ด€๋ จ๋˜๋Š” ๋™์ž‘์„ ์˜๋ฏธ- ๊ฐ™์€ ์„ฑ์งˆ, ๊ฐ™์€ ๊ตฌ์กฐ์™€ ํ˜•ํƒœ๋ฅผ ๊ฐ€์ง€๋Š” ๊ฐ์ฒด๋Š” ๋“ฑ๊ธ‰์œผ๋กœ ์ •์˜ํ•˜๊ณ  ๋“ฑ๊ธ‰์— ์†ํ•˜๋Š” ๊ฐ์ฒด๋Š” ๊ทธ ๋“ฑ๊ธ‰์˜ ์ธ์Šคํ„ด์Šค๋ผ ํ•จ   ์ ˆ์ฐจ์ง€ํ–ฅ๋ชฉ์ ์„ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์ผ์˜ ํ๋ฆ„์— ์ค‘์ ์„ ๋‘๊ณ  ์ ˆ์ฐจ๋Œ€๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ปดํ“จํ„ฐ ์ฒ˜๋ฆฌ๊ตฌ์กฐ์™€ ์œ ์‚ฌํ•ด์„œ ์†๋„๊ฐ€ ๋น ๋ฅธ ๋Œ€์‹  ์œ ์ง€๋ณด์ˆ˜, ๋””๋ฒ„๊น…์ด ์–ด๋ ค์›€

Java 2022.01.11

[JAVA] JAVA์˜ ๊ฐœ๋…๊ณผ ํŠน์ง•

Java์˜ ๊ฐœ๋… 1. ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (OOP, Object-Oriented Programming)Java๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐ์ฒด๋“ค ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์œผ๋กœ ํ‘œํ˜„์บก์Аํ™” : ๋ฐ์ดํ„ฐ์™€ ๋ฉ”์„œ๋“œ๋ฅผ ํ•˜๋‚˜์˜ ํด๋ž˜์Šค๋กœ ๋ฌถ์–ด ์™ธ๋ถ€์—์„œ ์ ‘๊ทผ ์ œ์–ด์ƒ์† : ๊ธฐ์กด ํด๋ž˜์Šค์˜ ํŠน์„ฑ์„ ์ƒ์†๋ฐ›์•„ ์ƒˆ๋กœ์šด ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ๋‹คํ˜•์„ฑ : ๊ฐ™์€ ๋ฉ”์„œ๋“œ๊ฐ€ ๋‹ค์–‘ํ•œ ํ˜•ํƒœ๋กœ ๋™์ž‘์ถ”์ƒํ™” : ๋ถˆํ•„์š”ํ•œ ์„ธ๋ถ€์‚ฌํ•ญ์„ ์ˆจ๊ธฐ๊ณ  ์ค‘์š”ํ•œ ๊ฐœ๋…๋งŒ ๋…ธ์ถœ2. ๋…๋ฆฝ์„ฑJava๋Š” JVM ์œ„์—์„œ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ํŠน์ • ์šด์˜์ฒด์ œ์— ์ข…์†๋˜์ง€ ์•Š์ŒJava ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ฝ”๋“œ๋ฅผ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•˜๋ฉฐ, ์ด ๋ฐ”์ดํŠธ์ฝ”๋“œ๋Š” JVM์—์„œ ์‹คํ–‰๋จ3. ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌJava๋Š” ์ž๋™ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•จGC๋Š” ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๊ฐ์ฒด๋ฅผ ์ž๋™์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ œ๊ฑฐํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ๋ฐฉ์ง€ํ•จ4. ..

Java 2022.01.11

[์ž๋ฐ”] DAO, DTO์˜ ์—ญํ• ๊ณผ ๊ด€๊ณ„

DAO (Data Access Object) DB์™€ ๊ฐ™์€ ์ €์žฅ์†Œ์™€ ์ƒํ˜ธ์ž‘์šฉ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฐ์ฒดDB์™€ ์ง์ ‘ ํ†ต์‹ ํ•˜๊ณ  SQL ์ฟผ๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ฑฐ๋‚˜ ๊ฒฐ๊ณผ๋ฅผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ์ „๋‹ฌDAO๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด DB ๊ด€๋ จ ๋กœ์ง์„ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์šฉ์ดํ•˜๊ณ  ํ…Œ์ŠคํŠธ๊ฐ€ ์‰ฌ์›Œ์ง๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘๊ทผ ์บก์Аํ™” : DAO๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์บก์Аํ™”CRUD ์ž‘์—… : DAO๋Š” Create, Read, Update, Delete์™€ ๊ฐ™์€ ๊ธฐ๋ณธ์ ์ธ ๋ฐ์ดํ„ฐ ์ž‘์—… ์ˆ˜ํ–‰์œ ์ง€๋ณด์ˆ˜์„ฑ ํ–ฅ์ƒ : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ จ ๋กœ์ง์ด ์ค‘์•™ ์ง‘์ค‘ํ™”๋˜์–ด ์žˆ์–ด ์ˆ˜์ •์ด ์šฉ์ด import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.Resul..

Java 2021.08.18