WIL(05.16~05.21)

์ „์„ฑ์˜ยท2022๋…„ 5์›” 22์ผ
0

WIL

๋ชฉ๋ก ๋ณด๊ธฐ
2/22

05.16

reverse(answer.begin(), answer.end());

๐ŸŽˆ answer๋ผ๋Š” vector๋ฅผ ๋’ค์ง‘๋Š”๋‹ค

sqrt()

๐ŸŽˆ์ œ๊ณฑ๊ทผ์„ ๊ตฌํ•˜๋Š” ํ•จ์ˆ˜

max_element(), min_element()

arr.erase(min_element(arr.begin(), arr.end()));

๐ŸŽˆ์ตœ๊ณ ๊ฐ’, ์ตœ์†Œ๊ฐ’์„ ์ฐพ๋Š” ํ•จ์ˆ˜
๐ŸŽˆline 2 : ์ œ์ผ ์ž‘์€ ์ˆ˜ ์ œ๊ฑฐ

05.17

์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ’€๋ฉด์„œ ํ—ท๊ฐˆ๋ ธ๋˜ ๊ฒƒ๋“ค์„ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

์ด ํ‘œ๋ฅผ ๋ณด๋ฉด์„œ ์•Œ์•„๋ณด์ž

vector<char>vec;
  
if (vec[i] >= 65 && vec[i] <= 90) // ๋Œ€๋ฌธ์ž ๋ฌผ๋ก  65 -> 'A' ๊ฐ€๋Šฅ
else if (vec[i] >= 97 && vec[i] <= 122) // ์†Œ๋ฌธ์ž
else if (vec[i] >= 48 && vec[i] <= 57) // ์ˆซ์ž

๐ŸŽˆ๋Œ€๋ฌธ์ž๋Š” ์†Œ๋ฌธ์ž๋ณด๋‹ค ์•„์Šคํ‚ค์ฝ”๋“œ ๊ฐ’์ด ๋‚ฎ๋‹ค.

answer += (s[i] - 48) // char to int
์ฆ‰ answer += (s[i] - '0')์™€ ๊ฐ™์€ ๋œป

๐ŸŽˆ์ด๋ ‡๊ฒŒ string ๋ณ€์ˆ˜์— index๋กœ ์ ‘๊ทผํ•˜๋ฉด์„œ -48์„ ํ•ด์ฃผ๋ฉด
int๋กœ ํ˜• ๋ณ€ํ™˜๊ณผ ๋™์‹œ์— intํ˜• ๋ณ€์ˆ˜์— ์ €์žฅ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

if (s[i] - '0' >= 0 && s[i] - '0' <= 9)

๐ŸŽˆ์ด if๋ฌธ์€ s๋ผ๋Š” string ๋ณ€์ˆ˜์— ์ˆซ์ž๊ฐ€ ์žˆ๋‚˜ ํŒ๋ณ„ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
-'0'์„ ํ•ด์ค€ ํ›„ ๊ทธ ๊ฐ’์ด 0 ~ 9 ์‚ฌ์ด๋ผ๋ฉด ์ˆซ์ž์ด๋‹ค.

if (isupper(vec[i])) // ๋Œ€๋ฌธ์ž ํŒ๋ณ„ isupper
else if (islower(vec[i])) // ์†Œ๋ฌธ์ž ํŒ๋ณ„ islower

๐ŸŽˆ๋Œ€๋ฌธ์ž, ์†Œ๋ฌธ์ž ํŒ๋ณ„ํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค. ์œ ์šฉํžˆ ์“ฐ์ผ ๊ฒƒ ๊ฐ™๋‹ค.

char ctmp2 = 1 + '1';
cout << ctmp2 << '\n';		//2

char ctmp2 = 1 + '8';
cout << ctmp2 << '\n';		//9

int itmp = 1 + '0';
cout << itmp << '\n';		//49

๐ŸŽˆ int, char~

int n; cin >> n;
string str = "";
str += ('A' - 'A' + n) % 26 + 'A';	//์•ŒํŒŒ๋ฒณ ๊ฐฏ์ˆ˜ 26

๐ŸŽˆ ๋ฌธ์ž์—ด์„ n๋งŒํผ ์ฆ๊ฐ€ ex) n=3 A->D


vec.assign({ cnt1, cnt2, cnt3 });

๐ŸŽˆ vector์— ์—ฌ๋Ÿฌ๊ฐœ์˜ ๊ฐ’์„ ํ•œ ๋ฒˆ์— ๋„ฃ๊ณ ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

05.18

DI ์—ฌ๊ธฐ์— ์ •๋ฆฌ

05.19

Collection ์—ฌ๊ธฐ์— ์ •๋ฆฌ

05.20 ~ 05.21

spring ์—ฌ๊ธฐ ์ด์™ธ์—๋„ ๋ช‡ ๊ฐœ ์ •๋ฆฌ


๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ž€?

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

ํด๋ž˜์Šค, ๊ฐ์ฒด, ์ธ์Šคํ„ด์Šค ๋„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์•Œ์•„๋ณด์ž!

ํด๋ž˜์Šค - ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด ๋‚ด๊ธฐ ์œ„ํ•œ ์„ค๊ณ„๋„.
๊ฐ์ฒด - ํด๋ž˜์Šค์— ์„ ์–ธ๋œ ๋ชจ์–‘ ๊ทธ๋Œ€๋กœ ์ƒ์„ฑ๋œ ์‹ค์ฒด, ๊ตฌํ˜„ํ•  ๋Œ€์ƒ.
์ธ์Šคํ„ด์Šค - ํด๋ž˜์Šค๋ฅผ ํ†ตํ•ด์„œ ๊ตฌํ˜„ํ•ด์•ผํ•  ๋Œ€์ƒ(๊ฐ์ฒด)์ด ์‹ค์ œ๋กœ ๊ตฌํ˜„๋œ ๊ตฌ์ฒด์ ์ธ ์‹ค์ฒด

๊ฐ์ฒด์ง€ํ–ฅ ์žฅ/๋‹จ์ 

  • ์žฅ์ 
  1. ์ƒ์†์„ ํ†ตํ•ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ์‹œ ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ์ด ๋†’๋‹ค.
  2. ํ”„๋กœ๊ทธ๋žจ์„ ์ˆ˜์ •ํ•˜๋”๋ผ๋„ ์บก์Šํ™”๋ฅผ ํ†ตํ•ด ์ฃผ๋ณ€ ์˜ํ–ฅ์ด ์ ๊ธฐ ๋•Œ๋ฌธ์— ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์‰ฝ๋‹ค.
  3. ๋…๋ฆฝ์ ์ธ ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ๊ฐœ๋ฐœ์˜ ์ƒ์‚ฐ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚จ๋‹ค.
  • ๋‹จ์ 
  1. ๋ณต์žกํ•ด์งˆ์ˆ˜๋ก ์ฝ”๋“œ ๋‚œ์ด๋„๊ฐ€ ์˜ฌ๋ผ๊ฐ„๋‹ค.
  2. ์„ค๊ณ„๋‹จ๊ณ„๋ถ€ํ„ฐ ๋งŽ์€ ์‹œ๊ฐ„์„ ํˆฌ์žํ•ด์•ผํ•œ๋‹ค.
  3. ์‹คํ–‰์†๋„๊ฐ€ ๋Š๋ฆฌ๋‹ค.

๊ฐ์ฒด์ง€ํ–ฅ ํŠน์ง•

์ƒ์†(Inheritance) - ๋ถ€๋ชจํด๋ž˜์Šค์˜ ์†์„ฑ๊ณผ ๊ธฐ๋Šฅ์„ ์ด์–ด๋ฐ›์•„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
์ถ”์ƒํ™”(abstraction) - ๊ฐ์ฒด์˜ ๊ณตํ†ต์ ์ธ ์†์„ฑ๊ณผ ๊ธฐ๋Šฅ์„ ์ถ”์ถœํ•˜์—ฌ ์ •์˜ํ•˜๋Š”๊ฒƒ์„ ๋งํ•œ๋‹ค.
๋‹คํ˜•์„ฑ(Polymorphism) - ํ•˜๋‚˜์˜ ๊ฐ์ฒด๊ฐ€ ์ƒํ™ฉ์— ๋”ฐ๋ผ ์žฌ๊ตฌ์„ฑ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

  • ์˜ค๋ฒ„๋ผ์ด๋”ฉ : ์ƒ์œ„ ํด๋ž˜์Šค๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ํ•˜์œ„ ํด๋ž˜์Šค๊ฐ€ ์žฌ์ •์˜ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
  • ์˜ค๋ฒ„๋กœ๋”ฉ : ๊ฐ™์€ ์ด๋ฆ„์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ ์ •์˜ํ•˜๊ณ , ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ํƒ€์ž…๊ณผ ๊ฐœ์ˆ˜๋ฅผ ๋‹ค๋ฅด๊ฒŒ ํ•˜์—ฌ ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์บก์Šํ™”(Encapsulation) - ๋ฐ์ดํ„ฐ์™€ ์ฝ”๋“œ์˜ ํ˜•ํƒœ๋ฅผ ์™ธ๋ถ€๋กœ๋ถ€ํ„ฐ ์•Œ ์ˆ˜์—†๊ฒŒ ํ•˜๊ณ , ๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ์™€ ์—ญํ• , ๊ธฐ๋Šฅ์„ ํ•˜๋‚˜์˜ ์บก์Šํ˜•ํƒœ๋กœ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.


JVM(Java Virtual Machine)์ด๋ž€?

์ž๋ฐ” ๊ฐ€์ƒ ๋จธ์‹ ์ด๋‹ค.
์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์„ ์šด์˜์ฒด์ œ, ํ•˜๋“œ์›จ์–ด์— ์ƒ๊ด€์—†์ด ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๊ณ , ํ”„๋กœ๊ทธ๋žจ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์ตœ์ ํ™”ํ•ด์ค€๋‹ค.

์ถœ์ฒ˜ - https://asfirstalways.tistory.com/158

์ž๋ฐ”์ฝ”๋“œ ์‹คํ–‰ ๊ณผ์ •

  1. ์ž‘์„ฑํ•œ ์ž๋ฐ”์†Œ์Šค(.java)๋ฅผ ์ž๋ฐ” ์ปดํŒŒ์ผ๋Ÿฌ(javac)๋ฅผ ํ†ตํ•ด ์ž๋ฐ” ๋ฐ”์ดํŠธ ์ฝ”๋“œ(.class)๋กœ ์ปดํŒŒ์ผํ•œ๋‹ค.
  2. ํด๋ž˜์Šค๋กœ๋”๋Š” ๋™์ ๋กœ๋”ฉ(Dynamic Loading)์„ ํ†ตํ•ด JVM์˜ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฐ๋‹ค.
  3. ์‹คํ–‰์—”์ง„(Execution Engine)์€ JVM๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์˜จ ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋“ค์„ ๋ช…๋ น์–ด ๋‹จ์œ„๋กœ ํ•˜๋‚˜์”ฉ ๊ฐ€์ ธ์™€์„œ ์‹คํ–‰ํ•œ๋‹ค.

JVM ๊ตฌ์กฐ

Class Loader, Execution Engine, Runtime Data Area๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.

Class Loader - ํด๋ž˜์Šค๋ฅผ ๋กœ๋“œํ•˜๊ณ , ํด๋ž˜์Šค์— ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜๊ณ , ํด๋ž˜์Šค์—์„œ ์ •์˜๋œ ํ•„๋“œ, ๋ฉ”์„œ๋“œ, ์ธํ„ฐํŽ˜์ด์Šค๋“ค์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์ค€๋น„ํ•œ๋‹ค.

Execution Engine - ํด๋ž˜์Šค๋ฅผ ์‹คํ–‰์‹œํ‚ค๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ฉ”๋ชจ๋ฆฌ๋Š” ํ•ด์ œํ•œ๋‹ค.

Runtime Data Area - JVM์ด OS์—์„œ ์‹คํ–‰๋˜๋ฉด์„œ ํ• ๋‹น๋ฐ›๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์ž…๋‹ˆ๋‹ค.

์ด ์ค‘ PC Register, JVM Stack, Native Method Stack์€ ์Šค๋ ˆ๋“œ(Thread)๋งˆ๋‹ค ํ•˜๋‚˜์”ฉ ์ƒ์„ฑ๋˜๊ณ ,
Heap, Method Area์€ ๋ชจ๋“  ์Šค๋ ˆ๋“œ๊ฐ€ ๊ณต์œ ํ•ด์„œ ์‚ฌ์šฉ๋œ๋‹ค.

๋ฐ”์ด๋ฐ”์ด...

profile
Slow and Steady

0๊ฐœ์˜ ๋Œ“๊ธ€