๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ 479

๐Ÿ“š [CS๋ฉด์ ‘] ์›น ๋ฉด์ ‘ ์งˆ๋ฌธ [4] [MSA]

1. MSA ์•„ํ‚คํ…์ณ๋ž€ ? MSA(Micro Serice Architecture) ์ด๋ž€ 1๊ฐœ์˜ ์‹œ์Šคํ…œ์„ ๋…๋ฆฝ์ ์œผ๋กœ ๋ฐฐํฌ ๊ฐ€๋Šฅํ•œ ๊ฐ๊ฐ์˜ ์„œ๋น„์Šค๋กœ ๋ถ„ํ• ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ๊ฐ์˜ ์„œ๋น„์Šค๋Š” API๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์œผ๋ฉฐ 1๊ฐœ์˜ ํฐ ์„œ๋น„์Šค๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์‹œ์Šคํ…œ์˜ ๊ตฌ์„ฑ์š”์†Œ๊ฐ€ ํ•œ ํ”„๋กœ์ ํŠธ์— ํ†ตํ•ฉ๋˜์–ด ์žˆ๋Š” Monolithic Architecture์˜ ํ•œ๊ณ„์ ์„ ๊ทน๋ณตํ•˜๊ณ ์ž ๋“ฑ์žฅํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. - ์žฅ์  1. ์ผ๋ถ€ ์„œ๋น„์Šค์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•ด๋„ ์ „์ฒด ์„œ๋น„์Šค์— ์˜ํ–ฅ์„ ๋ผ์น˜์ง€ ์•Š๋Š”๋‹ค. 2. ๊ฐ๊ฐ์˜ ์„œ๋น„์Šค๋“ค์€ ์„œ๋กœ ๋‹ค๋ฅธ ์–ธ์–ด์™€ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ๊ตฌ์„ฑ๋  ์ˆ˜ ์žˆ๋‹ค. 3. ์„œ๋น„์Šค์˜ ํ™•์žฅ์ด ์šฉ์ดํ•˜๋‹ค. - ๋‹จ์  1. ์„œ๋น„์Šค๊ฐ€ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ์–ด ํ…Œ์ŠคํŠธ๋‚˜ ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ ๋“ฑ์ด ์–ด๋ ต๋‹ค. 2. ์„œ๋น„์Šค ๊ฐ„์— API ๋กœ ํ†ต์‹ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ์— ๋Œ€ํ•œ ๋น„์šฉ์ด ๋ฐœ..

๐ŸŸจ [Java] [์˜ˆ์™ธ ์ฒ˜๋ฆฌ]Checked Exception VS Unchecked Exception

์ด์ „์˜ ๊ธ€์—์„œ ์˜ˆ์™ธ์ฒ˜๋ฆฌ์— ๋Œ€ํ•ด ๋‹ค๋ฃฌ์ ์ด ์žˆ๋‹ค. ๊ธ€์„ ๋‹ค์‹œ ์ฝ์–ด๋ณด๋‹ค ๋ณด๋‹ˆ Runtime Exception ์— ๋Œ€ํ•ด ์ œ๋Œ€๋กœ ์„œ์ˆ ํ•˜์ง€ ์•Š์•„์„œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๊ฐ€ ์ค‘์š”ํ•œ ๋งŒํผ ๋‹ค์‹œ ํ•œ ๋ฒˆ ์ •๋ฆฌํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ๐Ÿ“Œ 1. ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ž€? ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ž€, ์˜ˆ์™ธ๋‚˜ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒ ๊ฐ€๋Šฅํ•œ ์ƒํ™ฉ์„ ๋ฏธ์—ฐ์— ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฝ”๋“œ ์ƒ์œผ๋กœ ๋ฏธ๋ฆฌ ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ ๐Ÿ“Œ 2. ์˜ˆ์™ธ (Exception) ์™€ ์—๋Ÿฌ (Error) โšก ์˜ˆ์™ธ(Exception)๋ž€ ? ์˜ˆ์™ธ๋Š” Checked Exception๊ณผ Unchecked Exception์œผ๋กœ ๋‚˜๋‰œ๋‹ค. Checked Exception์€ Unchecked Exception์„ ์ œ์™ธํ•œ ๋ชจ๋“  ์˜ˆ์™ธ์ด๋‹ค. ์ปดํŒŒ์ผ ์‹œ ์˜ˆ์™ธ๋ฐœ์ƒ ์—ฌ๋ถ€๋ฅผ ์ฒดํฌํ•˜๊ณ  ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ํ•˜์ง€ ์•Š์œผ๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ๋ฐ˜๋ฉด, Unchecked ..

โฌ› [Programmers] [Java] [Level2] ์˜ˆ์ƒ ๋Œ€์ง„ํ‘œ

๋ฌธ์ œ https://school.programmers.co.kr/learn/courses/30/lessons/12985?language=java ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ํ’€์ด class Solution { public int solution(int n, int a, int b) { int answer = 0; while(true){ a = a / 2 + a % 2; b = b / 2 + b % 2; answer++; if(a==b) break; } return answer; } }

๐Ÿ“š [CS๋ฉด์ ‘] ์›น ๋ฉด์ ‘ ์งˆ๋ฌธ [3]

1. HTTP / HTTPS HTTP(Hyper Text Transfer Protocol)์ด๋ž€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๊ธฐ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ์ด๋ฉฐ, ์„œ๋ฒ„/ํด๋ผ์ด์–ธํŠธ ๋ชจ๋ธ์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. HTTP๋Š” ์ƒํƒœ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š๋Š” stateless์˜ ํŠน์ง•๊ณผ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์— ๋งž๋Š” ์‘๋‹ต์„ ๋ณด๋‚ธ ํ›„ ์—ฐ๊ฒฐ์„ ๋Š๋Š” Connectionless์˜ ํŠน์ง•์„ ๊ฐ–๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. - ์žฅ์  1. ํ†ต์‹ ๊ฐ„์˜ ์—ฐ๊ฒฐ ์ƒํƒœ ์ฒ˜๋ฆฌ๋‚˜ ์ƒํƒœ ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•  ํ•„์š”๊ฐ€ ์—†์–ด ์„œ๋ฒ„ ๋””์ž์ธ์ด ๊ฐ„๋‹จํ•˜๋‹ค. 2. ๊ฐ๊ฐ์˜ HTTP ์š”์ฒญ์— ๋…๋ฆฝ์ ์œผ๋กœ ์‘๋‹ต๋งŒ ๋ณด๋‚ด์ฃผ๋ฉด ๋œ๋‹ค. - ๋‹จ์  1. ์ด์ „ ํ†ต์‹ ์˜ ์ •๋ณด๋ฅผ ๋ชจ๋ฅด๊ธฐ ๋–„๋ฌธ์— ๋งค๋ฒˆ ์ธ์ฆ์„ ํ•ด์ค˜์•ผ ํ•œ๋‹ค. -> ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ฟ ํ‚ค / ์„ธ์…˜์„ ์‚ฌ์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌ HTTPS๋Š” HTTP์— ์•”ํ˜ธํ™”๊ฐ€ ์ถ”๊ฐ€๋œ ํ”„๋กœํ† ์ฝœ ์ž…๋‹ˆ๋‹ค. HTTP๋Š” ์›๋ž˜ T..

๐Ÿ“š [CS๋ฉด์ ‘] ์›น ๋ฉด์ ‘ ์งˆ๋ฌธ [2]

1. Transaction ํŠธ๋žœ์žญ์…˜์ด๋ž€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ƒํƒœ๋ฅผ ๋ณ€ํ™”์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…์˜ ๋‹จ์œ„์ด๋‹ค. ๊ฐ€์žฅ ์œ ๋ช…ํ•œ ์˜ˆ์‹œ๋กœ ์€ํ–‰ ์ž…์ถœ๊ธˆ์ด ์žˆ๋‹ค. ์€ํ–‰์—์„œ ๋‚ด๊ฐ€ A์—๊ฒŒ ๋ˆ์„ ๋ณด๋ƒˆ๋‹ค๋ฉด ๋‚˜์˜ ํ†ต์žฅ์—์„œ ๋ˆ์ด ๋น ์ ธ๋‚˜๊ฐ€๊ณ  A์˜ ํ†ต์žฅ์— 1000์›์ด ์ž…๊ธˆ๋˜๋Š” ๊ฒƒ์ด ํ•˜๋‚˜์˜ ๊ณผ์ •์ด๋‹ค. ์ด ์ค‘๊ฐ„์— ์–ด๋– ํ•œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒจ์„œ ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ์ ์šฉ๋˜์ง€ ์•Š๋Š” ๋‹ค๋ฉด ๊ทธ๊ฒƒ์€ ์ž˜๋ชป๋œ ์‹œ์Šคํ…œ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ ํŠธ๋žœ์žญ์…˜์˜ ํŠน์ง• 4๊ฐ€์ง€๋ฅผ ๋ชจ๋‘ ์ฐพ์•„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. - ์›์ž์„ฑ (Atomicity) All or Nothing. ํŠธ๋žœ์žญ์…˜์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ชจ๋‘ ๋ฐ˜์˜๋˜๊ฑฐ๋‚˜ ์ „ํ˜€ ๋ฐ˜์˜๋˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค๋Š” ํŠน์ง•์ด๋‹ค. ์ค‘๊ฐ„์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋ฉด ๊ธฐ์กด์˜ ๊ณผ์ •๋“ค์„ ์ฒ˜์Œ์œผ๋กœ ๋Œ์•„๊ฐ€์•ผ ํ•˜๋Š” ๊ฒƒ๊ณผ ๋˜‘๊ฐ™๋‹ค. ๋งŒ์•ฝ ํŠธ๋žœ์žญ์…˜ ๋‹จ์œ„๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ๊ทธ ์ค‘๊ฐ„์— ์˜ค๋ฅ˜๊ฐ€ ..

โฌ› [Programmers] [Java] [Level2] ์ ํ”„์™€ ์ˆœ๊ฐ„์ด๋™

๋ฌธ์ œ https://school.programmers.co.kr/learn/courses/30/lessons/12980?language=java ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ํ’€์ด import java.util.*; public class Solution { public int solution(int n) { int ans = 0; while(n != 0){ if(n % 2 == 0){ n /= 2; } else { n--; ans++; } } return ans; } }

๐ŸŸฉ [๋ฐฑ์ค€] [Java] [Silver2] 1874๋ฒˆ_์Šคํƒ ์ˆ˜์—ด

๋ฌธ์ œ https://www.acmicpc.net/problem/1874 1874๋ฒˆ: ์Šคํƒ ์ˆ˜์—ด 1๋ถ€ํ„ฐ n๊นŒ์ง€์— ์ˆ˜์— ๋Œ€ํ•ด ์ฐจ๋ก€๋กœ [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ์ˆ˜์—ด [4, 3, 6, 8, 7, 5, 2, 1]์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. www.acmicpc.net ํ’€์ด import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import java.util.Stack; pub..

๐ŸŸฉ [๋ฐฑ์ค€] [Java] [Silver3] 1966๋ฒˆ_ํ”„๋ฆฐํ„ฐ ํ

๋ฌธ์ œ https://www.acmicpc.net/problem/1966 1966๋ฒˆ: ํ”„๋ฆฐํ„ฐ ํ ์—ฌ๋Ÿฌ๋ถ„๋„ ์•Œ๋‹ค์‹œํ”ผ ์—ฌ๋Ÿฌ๋ถ„์˜ ํ”„๋ฆฐํ„ฐ ๊ธฐ๊ธฐ๋Š” ์—ฌ๋Ÿฌ๋ถ„์ด ์ธ์‡„ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฌธ์„œ๋ฅผ ์ธ์‡„ ๋ช…๋ น์„ ๋ฐ›์€ ‘์ˆœ์„œ๋Œ€๋กœ’, ์ฆ‰ ๋จผ์ € ์š”์ฒญ๋œ ๊ฒƒ์„ ๋จผ์ € ์ธ์‡„ํ•œ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฌธ์„œ๊ฐ€ ์Œ“์ธ๋‹ค๋ฉด Queue ์ž๋ฃŒ๊ตฌ์กฐ์— www.acmicpc.net ํ’€์ด import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Collections; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public cl..

โฌ› [Programmers] [Java] [Level2] ์˜์–ด ๋๋ง์ž‡๊ธฐ

๋ฌธ์ œ https://school.programmers.co.kr/learn/courses/30/lessons/12981?language=java ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ํ’€์ด import java.util.*; class Solution { public int[] solution(int n, String[] words) { int[] answer = {0, 0}; Map map = new HashMap(); for(int i=0; i

๐ŸŸฉ [๋ฐฑ์ค€] [Java] [Silver4] 10866_๋ฑ

๋ฌธ์ œ https://www.acmicpc.net/problem/10866 10866๋ฒˆ: ๋ฑ ์ฒซ์งธ ์ค„์— ์ฃผ์–ด์ง€๋Š” ๋ช…๋ น์˜ ์ˆ˜ N (1 ≤ N ≤ 10,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” ๋ช…๋ น์ด ํ•˜๋‚˜์”ฉ ์ฃผ์–ด์ง„๋‹ค. ์ฃผ์–ด์ง€๋Š” ์ •์ˆ˜๋Š” 1๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 100,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค. ๋ฌธ์ œ์— ๋‚˜์™€์žˆ์ง€ www.acmicpc.net ํ’€์ด import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.nio.Buffer; import java.util.*; public class ๋ฑ { public static void main(String[] args) throws IOExcept..