[์ž๊ฒฉ์ฆ] ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ์ •๋ฆฌ

์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ์ž๊ฒฉ์ฆ์„ ๋”ฐ๋Š” ๊ฒƒ์— ์„ฑ๊ณต์€ ํ–ˆ์ง€๋งŒ ๋‚ด์šฉ์„ ์™„๋ฒฝํžˆ ๊ณต๋ถ€ํ•œ ๊ฒŒ ์•„๋‹ˆ๋ผ ์•„์‰ฌ์šด ๋งˆ์Œ์— ์ค‘์š”ํ•œ ๋ถ€๋ถ„๋งŒ ์ •๋ฆฌํ•˜๊ณ ์ž ์“ฐ๋Š” ๊ธ€!


1. ์• ์ž์ผ ๋ฐฉ๋ฒ•๋ก 

- ๊ธฐ๋Šฅ ์ค‘์‹ฌ

- ๊ฐœ์ธ, ์†Œํ†ต

- ์œ ์—ฐ

- SW ์‹คํ–‰ ๊ฐ€์น˜

- ๊ณ ๊ฐ ํ”ผ๋“œ๋ฐฑ ๋ฐ˜์˜

ex) XP, SCRUM, LEAN

 

2. ๋นŒ๋“œ ์ž๋™ํ™” ๋„๊ตฌ

- CI(continuous integration) ์„œ๋ฒ„ : Hudson(์ด์ „๋ฒ„์ „), Jenkins

- SCM(source code management) : SVN, Git

- ๋นŒ๋“œ ๋„๊ตฌ : Ant(์ž๋ฐ”), Maven(์ž๋ฐ”), Gradle(์•ˆ๋“œ๋กœ์ด๋“œ), Jenkins(Servlet Container)

- ํ…Œ์ŠคํŠธ ๋„๊ตฌ : JUnit, Selenium

 

3. ๋ธ”๋ž™๋ฐ•์Šค ํ…Œ์ŠคํŠธ & ํ™”์ดํŠธ๋ฐ•์Šค ํ…Œ์ŠคํŠธ

- ๋ธ”๋ž™๋ฐ•์Šค ํ…Œ์ŠคํŠธ : ๋™๋“ฑ๋ถ„ํ• , ๊ฒฝ๊ณ„๊ฐ’ ๋ถ„์„ (๋‚ด๋ถ€๊ตฌ์กฐ X)

- ํ™”์ดํŠธ๋ฐ•์Šค ํ…Œ์ŠคํŠธ : ์†Œ์Šค์ฝ”๋“œ ์ˆ˜ํ–‰ O

 

4. ์ž๋ฃŒ๊ตฌ์กฐ

- ์„ ํ˜•๊ตฌ์กฐ : ๋ฆฌ์ŠคํŠธ, ์Šคํƒ, ํ, ๋ฐํฌ

- ๋น„์„ ํ˜•๊ตฌ์กฐ : ํŠธ๋ฆฌ, ๊ทธ๋ž˜ํ”„

 

5. ์•Œ๊ณ ๋ฆฌ์ฆ˜

[๊ธฐ๋ฒ•]

1) ๋ถ„ํ• ๊ณผ ์ •๋ณต : ๋ถ„ํ•  & ๋ณ‘ํ•ฉ

2) ๋™์ ๊ณ„ํš๋ฒ• : ๊ณผ๊ฑฐ์˜ ํ•ด๊ฐ€ ๋ฏธ๋ž˜์— ๋„์›€

3) ํƒ์š•๋ฒ• : ํ•ด๋‹น ์‹œ์ ์˜ ์ตœ์ ํ•ด๊ฐ€ ์ „์ฒด์˜ ์ตœ์ ํ•ด

4) ๋ฐฑํŠธ๋ž˜ํ‚น : ์ด์ „์œผ๋กœ ๋‹ค์‹œ ๋Œ์•„๊ฐ€๋Š” ๋ฐฉ์‹

(dfs์™€์˜ ์ฐจ์ด๋Š”, ๋ฐฑํŠธ๋ž˜ํ‚น: ๊ฐ€๋Šฅ์„ฑ ์—†๋Š” ๋ฃจํŠธ ์กฐ๊ธฐ ์ฐจ๋‹จ)

 

[์‹œ๊ฐ„๋ณต์žก๋„]

O(1) : ํ•ด์‰ฌ

O(log2n) : ์ด์ง„ํƒ์ƒ‰

O(n) : ์ˆœ์ฐจํƒ์ƒ‰

O(nlog2n) : ํ€ต / ํ•ฉ๋ณ‘ / ํž™

O(n^2) : ๋ฒ„๋ธ” / ์‚ฝ์ž… / ์„ ํƒ

 

[ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜]

1) ์ˆœ์ฐจํƒ์ƒ‰ : ์ฐจ๋ก€๋Œ€๋กœ ํ™•์ธ

2) ์ด์ง„ํƒ์ƒ‰ : ์ค‘์•™๊ฐ’์œผ๋กœ ์ง€์†์  ํฌ๊ธฐ ๋น„๊ต

 

[์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜]

1) ํ€ต์ •๋ ฌ(๋ถ„ํ• ์ •๋ณต) : pivot๊ฐ’๊ณผ ์ธ๋ฑ์Šค( ์™ผ์ชฝ๋ ํ”ผ๋ด‡์•ž i, ์˜ค๋ฅธ์ชฝ๋j )๋กœ pivot์ž‘์€๊ฐ’ j์™€ ํฐ๊ฐ’ j์„ ๋ฐ”๊ฟ”์ค€๋‹ค. i,j๊ฐ€ ์—‡๊ฐˆ๋ฆฌ๋ฉด ๋ถ„ํ• ํ•˜์—ฌ ์ƒˆ๋กœ์šด pivot๊ฐ’์„ ์žก๊ณ  ๋˜‘๊ฐ™์ด ๋ฐ˜๋ณตํ•œ๋‹ค. (์ตœ์„  ์ตœ์•…์˜ ๊ฒฝ์šฐ๊ฐ€ ๊ฐˆ๋ฆฐ๋‹ค)

์ตœ์„  : nlog2n

์ตœ์•… : n^2

 

2) ํ•ฉ๋ณ‘์ •๋ ฌ(๋ถ„ํ• ์ •๋ณต) :  pivot๊ฐ’ ์—†์ด ์ ˆ๋ฐ˜์œผ๋กœ ๋ชจ๋‘ ์ชผ๊ฐ  ํ›„, ๊ฐ’์„ ๋น„๊ตํ•˜๋ฉด์„œ ํ•ฉ์ณ์ค€๋‹ค

nlog2n ๋ณด์žฅ

 

3) ํž™์ •๋ ฌ : max heap์˜ ๊ฒฝ์šฐ ์™„์ „์ด์ง„ํŠธ๋ฆฌ ๊ฐ€์žฅ ํฐ ํ‚ค๊ฐ’์„ ๊ฐ–๋Š๋Š ๋ฃจํŠธ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๊ณผ์ •์„ ๋ฐ˜๋ณต

nlog2n ๋ณด์žฅ

 

4) ๋ฒ„๋ธ”์ •๋ ฌ : ์•ž๋’ค๋กœ ๋น„๊ตํ•˜๋ฉฐ ๊ฐ’์„ ๊ตํ™˜ํ•ด์ฃผ๋Š” ๊ฒƒ์„ ๋ฐ˜๋ณต. ์‹œ์ž‘์€ ํ•ญ์ƒ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋น„๊ตํ•œ๋‹ค.

n(n-1)/2 ๋ฒˆ ๋ฐ˜๋ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„๋ณต์žก๋„ : n^2

 

5) ์‚ฝ์ž…์ •๋ ฌ : key๊ฐ’์„ ๋ฐ”๋กœ ์ด์ „๊ฐ’๋ถ€ํ„ฐ ์ฐจ๋ก€๋กœ ์™ผ์ชฝ์œผ๋กœ ๋น„๊ต. key๊ฐ’์€ ๋‘ ๋ฒˆ์งธ์—์„œ ์‹œ์ž‘

n^2

 

6) ์„ ํƒ์ •๋ ฌ : ์ตœ์†Ÿ๊ฐ’ ํƒ์ƒ‰ ํ›„ ์ฒซ๋ฒˆ์งธ ์ž๋ฆฌ ๊ฐ’๊ณผ ๊ตํ™˜, ๋‹ค์Œ ์ตœ์†Ÿ๊ฐ’ ํƒ์ƒ‰ ํ›„ ๋‘๋ฒˆ์งธ ์ž๋ฆฌ ๊ฐ’๊ณผ ๊ตํ™˜ ๋ฐ˜๋ณต

n^2

 

6. ๊ฐœ๋ฐœ ํ™˜๊ฒฝ

1) ํ•˜๋“œ์›จ์–ด ๊ฐœ๋ฐœํ™˜๊ฒฝ

- ์›น์„œ๋ฒ„(Web Server) : HTTP, ๋ธŒ๋ผ์šฐ์ € ์š”์ฒญ, HTML ์ „์†ก (์•„ํŒŒ์น˜)

- WAS(Web Application Server) : ์›น ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์š”์ฒญ๋ฐ›์•„ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ (JEUS, Tomcat, Websphere, Servlet, JSP์ฒ˜๋ฆฌ -> ๋™์ )

 

2) ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœํ™˜๊ฒฝ

- ์šด์˜์ฒด์ œ : ํ•˜๋“œ์›จ์–ด ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ

- ๋ฏธ๋“ค์›จ์–ด (JVM) : ์ปดํ“จํ„ฐ๊ฐ„ ์—ฐ๊ฒฐ

- DBMS : DB ๊ด€๋ฆฌ

 

3) ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„

- JSON : ์†์„ฑ-ํ‚ค ๊ฐ’์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ ๊ฐœ๋ฐฉํ˜• ํ‘œ์ค€ ํฌ๋งท

- XML : HTML ๋ณด์™„ ์ธํ„ฐ๋„ท ํŠน์ˆ˜ ๋ชฉ์  ๋งˆํฌ์—… ์–ธ์–ด

- AJAX : JS์ด์šฉํ•˜์—ฌ ์›น์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ„ ๋น„๋™๊ธฐ์ ์œผ๋กœ XML ๋ฐ์ดํ„ฐ ๊ตํ™˜ ๋ฐ ์กฐ์ž‘ ์œ„ํ•œ ๊ธฐ์ˆ  (์ผ๋ถ€ ํŽ˜์ด์ง€ ๋กœ๋“œ ๊ฐ€๋Šฅ)

- REST : ์›น ํ™˜๊ฒฝ์—์„œ ์ž์› ์ •๋ณด ํ‘œ์ค€ํ™”๋œ HTTP ๋ฉ”์„œ๋“œ๋กœ ๊ตํ™˜ ๊ฐ€๋Šฅํ•˜๊ฒŒํ•˜๋Š” ์›น ์•„ํ‚คํ…์ณ (CRUD)

 

7. ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด

[์ข…๋ฅ˜]

- ์ ˆ์ฐจ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (PP) : ๋ช…๋ นํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ (C์–ธ์–ด)

- ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (OOP) : ์ถ”์ƒํ™” / ์ƒ์† / ๋‹คํ˜•์„ฑ / ๋™์ ๋ฐ”์ธ๋”ฉ / ์ ‘๊ทผ์ œ์–ด์ž (Java, C++, C#)

- ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด : php, javascript, python

 

[java]

- new : ๊ฐ์ฒด์ƒ์„ฑ

- static ๋ฉ”์„œ๋“œ : ํด๋ž˜์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐˆ ๋•Œ ์ž๋™ ์ƒ์„ฑ ๋ฉ”์„œ๋“œ (์ธ์Šคํ„ด์Šค ์ƒ์„ฑํ•˜์ง€ ์•Š์•„๋„ ํ˜ธ์ถœ ๊ฐ€๋Šฅ)

- ์ƒ์„ฑ์ž : ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ์ž๋™์œผ๋กœ ํ˜ธ์ถœ๋˜๋Š” ๋ฉ”์„œ๋“œ

- ์ ‘๊ทผ์ œ์–ด์ž : public(์™ธ๋ถ€ ๋ชจ๋“  ํด๋ž˜์Šค ๊ฐ€๋Šฅ) / protected(๊ฐ™์€ ํŒจํ‚ค์ง€ ๋‚ด๋ถ€ + ํ•˜์œ„ ํด๋ž˜์Šค) / default(ํŒจํ‚ค์ง€ ๋‚ด๋ถ€ ํด๋ž˜์Šค) / private(๊ฐ™์€ ํด๋ž˜์Šค ๋‚ด๋ถ€)

- this (๊ฐ์ฒด ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ) OR (์ƒ์„ฑ์ž) - ํŒŒ์ด์ฌ self

- ์˜ค๋ฒ„๋กœ๋”ฉ(๋™์ผ ์ด๋ฆ„ ๋ฉ”์„œ๋“œ๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜๋งŒ ๋‹ค๋ฅด๊ฒŒ ์ •์˜) / ์˜ค๋ฒ„๋ผ์ด๋”ฉ(ํ•˜์œ„ ํด๋ž˜์Šค์—์„œ ์ƒ์œ„ ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ ์žฌ์ •์˜)

- super : ์ƒ์œ„ ํด๋ž˜์Šค ์ ‘๊ทผ

 

8. ๋„คํŠธ์›Œํฌ

[OSI 7layer]

1) ์‚ฌ์šฉ์ž-๋„คํŠธ์›Œํฌ : application : ํ”„๋กœํ† ์ฝœ ํ™œ์šฉ HTTP, FTP, SMTP ๋“ฑ

2) ์•”ํ˜ธํ™”/๋ถ€ํ˜ธํ™” : presentation : ์‚ฌ์šฉ์ž ์ดํ•ด ํ˜•ํƒœ (JPEG, MPEG)

3) ๋…ผ๋ฆฌ์—ฐ๊ฒฐ : session : ๋…ผ๋ฆฌ์  ์—ฐ๊ฒฐ (๋ฉ”์„ธ์ง€, ๋ฐ์ดํ„ฐ)

4) ์˜ค๋ฅ˜์ œ์–ด : transport : ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ „๋‹ฌ, ์˜ค๋ฅ˜์ œ์–ด / ํ๋ฆ„์ œ์–ด / ํ˜ผ์žก์ œ์–ด (TCP - ์•ˆ์ •์ , ์—๋Ÿฌ X, UDP - ์‹ ๋ขฐ์„ฑ X) - ์„ธ๊ทธ๋จผํŠธ

5) ๊ฒฝ๋กœ : network : ๋ผ์šฐํŒ… ํ™œ์šฉ -> ์ตœ์ ๊ฒฝ๋กœ (IP- ํŒจํ‚ท๋‹จ์œ„ ๋ฐ์ดํ„ฐ๊ตํ™˜, ํ†ต์‹ ๊ทœ์•ฝ, ARP - IP -> MAC, RARP - MAC O IP X)- ํŒจํ‚ท <๋ผ์šฐํ„ฐ>

6) ์ „์†ก์˜ค๋ฅ˜์ œ์–ด : data link : ์˜ค๋ฅ˜์ œ์–ด / ํ๋ฆ„์ œ์–ด / ํšŒ์„ ์ œ์–ด - ํ”„๋ ˆ์ž„ <์Šค์œ„์น˜>

7) ๋น„ํŠธ : physical : ๋ฌผ๋ฆฌ๊ณ„์ธต, bit ๋ณ€ํ™˜

 

9. ์‹ ๊ธฐ์ˆ 

- ๋„์ปค, ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค

- NOSQL

- ๋ฐ์ดํ„ฐ๋งˆ์ด๋‹

 

* ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ จ ๋‚ด์šฉ์€ SQLD ํฌ์ŠคํŠธ์—์„œ ํ•œ ๋ฒˆ์— ์ •๋ฆฌ ์˜ˆ์ •

  • ๋„ค์ด๋ฒ„ ๋ธ”๋Ÿฌ๊ทธ ๊ณต์œ ํ•˜๊ธฐ
  • ๋„ค์ด๋ฒ„ ๋ฐด๋“œ์— ๊ณต์œ ํ•˜๊ธฐ
  • ํŽ˜์ด์Šค๋ถ ๊ณต์œ ํ•˜๊ธฐ
  • ์นด์นด์˜ค์Šคํ† ๋ฆฌ ๊ณต์œ ํ•˜๊ธฐ