Spring
์ง๊ธ๊น์ง ์์ฑํ ์ฝ๋ ์ค๋ช
ํ์๊ฐ์
์ ํ๊ณ , ์กฐํํ๋ ์ฝ๋๋ฅผ ์์ฑํ๋ค. ๋ฌผ๊ฑด์ ๊ตฌ์
ํ ๋ ํ ์ธ ์ ์ฑ
์ ๋ง๋ค๊ณ ์ถ์ด์ ๊ณ ์ ๋ ํ ์ธ๊ธ์ก์ ํ ์ธํด์ฃผ๋ ์ฝ๋๋ฅผ ์์ฑํ๋ค. ๊ทธ๋ฐ๋ฐ ๊ธฐ์
์์ ๊ณ ์ ๋ ํ ์ธ๊ธ์ก์ด ์๋๋ผ ํผ์ผํธ๋ก ํ ์ธํด์ฃผ๊ณ ์ถ๋ค๊ณ ํ๋ฉด ์ฝ๋๋ฅผ ๋ฐ๊ฟ์ผํ๋ค. package hello.core.discount; import hello.core.member.Grade; import hello.core.member.Member; public class RateDiscountPolicy implements DiscountPolicy { private int discountPercent = 10; @Override public int discount(Member member, int price) { if (membe..
JAVA & OOP
SOLID ์์น์ 5๊ฐ์ง ์์น์ผ๋ก ์ด๋ฃจ์ด์ ธ์๋ค. SRP : ๋จ์ผ ์ฑ
์ ์์น (Single Responsibility Principle) OCP : ๊ฐ๋ฐฉ-ํ์ ์์น (Open/Closed Principle) LSP : ๋ฆฌ์ค์ฝํ ์นํ ์์น (Liskov Substitution Principle) ISP : ์ธํฐํ์ด์ค ๋ถ๋ฆฌ ์์น (Interface Segregation Principle) DIP : ์์กด๊ด๊ณ ์ญ์ ์์น (Dependency Inversion Principle) ๐งก SRP (๋จ์ผ ์ฑ
์ ์์น) - ํ ํด๋์ค๋ ํ๋์ ์ฑ
์๋ง ๊ฐ์ ธ์ผ ํ๋ค. * ์ค์ํ ๊ธฐ์ค : ๋ณ๊ฒฝ (๋ณ๊ฒฝ์ด ์์ ๋ ํ๊ธ ํจ๊ณผ๊ฐ ์ ์ผ๋ฉด ๋จ์ผ ์ฑ
์ ์์น์ ์ ๋ฐ๋ฅธ ๊ฒ์ด๋ค.) ๐ OCP (๊ฐ๋ฐฉ-ํ์ ์์น) - ์ํํธ์จ์ด ์์๋ ํ์ฅ์๋ ..
Algorithm/BOJ
https://www.acmicpc.net/problem/1158 1158๋ฒ: ์์ธํธ์ค ๋ฌธ์ ์ฒซ์งธ ์ค์ N๊ณผ K๊ฐ ๋น ์นธ์ ์ฌ์ด์ ๋๊ณ ์์๋๋ก ์ฃผ์ด์ง๋ค. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net [๋ฌธ์ ] ์์ธํธ์ค ๋ฌธ์ ๋ ๋ค์๊ณผ ๊ฐ๋ค. 1๋ฒ๋ถํฐ N๋ฒ๊น์ง N๋ช
์ ์ฌ๋์ด ์์ ์ด๋ฃจ๋ฉด์ ์์์๊ณ , ์์ ์ ์ K(≤ N)๊ฐ ์ฃผ์ด์ง๋ค. ์ด์ ์์๋๋ก K๋ฒ์งธ ์ฌ๋์ ์ ๊ฑฐํ๋ค. ํ ์ฌ๋์ด ์ ๊ฑฐ๋๋ฉด ๋จ์ ์ฌ๋๋ค๋ก ์ด๋ฃจ์ด์ง ์์ ๋ฐ๋ผ ์ด ๊ณผ์ ์ ๊ณ์ํด ๋๊ฐ๋ค. ์ด ๊ณผ์ ์ N๋ช
์ ์ฌ๋์ด ๋ชจ๋ ์ ๊ฑฐ๋ ๋๊น์ง ๊ณ์๋๋ค. ์์์ ์ฌ๋๋ค์ด ์ ๊ฑฐ๋๋ ์์๋ฅผ (N, K)-์์ธํธ์ค ์์ด์ด๋ผ๊ณ ํ๋ค. ์๋ฅผ ๋ค์ด (7, 3)-์์ธํธ์ค ์์ด์ ์ด๋ค. N๊ณผ K๊ฐ ์ฃผ์ด์ง๋ฉด (N, K)-์์ธํธ์ค ์์ด์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ..
Algorithm/PROGRAMMERS
https://programmers.co.kr/learn/courses/30/parts/12081 ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์
๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์
๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์. programmers.co.kr [๋ฌธ์ ] ํ๋ก๊ทธ๋๋จธ์ค ํ์์๋ ๊ธฐ๋ฅ ๊ฐ์ ์์
์ ์ํ ์ค์
๋๋ค. ๊ฐ ๊ธฐ๋ฅ์ ์ง๋๊ฐ 100%์ผ ๋ ์๋น์ค์ ๋ฐ์ํ ์ ์์ต๋๋ค. ๋, ๊ฐ ๊ธฐ๋ฅ์ ๊ฐ๋ฐ์๋๋ ๋ชจ๋ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋ค์ ์๋ ๊ธฐ๋ฅ์ด ์์ ์๋ ๊ธฐ๋ฅ๋ณด๋ค ๋จผ์ ๊ฐ๋ฐ๋ ์ ์๊ณ , ์ด๋ ๋ค์ ์๋ ๊ธฐ๋ฅ์ ์์ ์๋ ๊ธฐ๋ฅ์ด ๋ฐฐํฌ๋ ๋ ํจ๊ป ๋ฐฐํฌ๋ฉ๋๋ค. ๋จผ์ ๋ฐฐํฌ๋์ด์ผ ํ๋ ์์๋๋ก ์์
์ ์ง๋๊ฐ ์ ํ ์ ์ ๋ฐฐ์ด progresses์ ๊ฐ ์์
์ ๊ฐ๋ฐ ์๋๊ฐ ์ ํ ..
Algorithm/BOJ
https://www.acmicpc.net/problem/9012 [๋ฌธ์ ] ๊ดํธ ๋ฌธ์์ด(Parenthesis String, PS)์ ๋ ๊ฐ์ ๊ดํธ ๊ธฐํธ์ธ ‘(’ ์ ‘)’ ๋ง์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ ๋ฌธ์์ด์ด๋ค. ๊ทธ ์ค์์ ๊ดํธ์ ๋ชจ์์ด ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑ๋ ๋ฌธ์์ด์ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด(Valid PS, VPS)์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. ํ ์์ ๊ดํธ ๊ธฐํธ๋ก ๋ “( )” ๋ฌธ์์ด์ ๊ธฐ๋ณธ VPS ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. ๋ง์ผ x ๊ฐ VPS ๋ผ๋ฉด ์ด๊ฒ์ ํ๋์ ๊ดํธ์ ๋ฃ์ ์๋ก์ด ๋ฌธ์์ด “(x)”๋ VPS ๊ฐ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ VPS x ์ y๋ฅผ ์ ํฉ(concatenation)์ํจ ์๋ก์ด ๋ฌธ์์ด xy๋ VPS ๊ฐ ๋๋ค. ์๋ฅผ ๋ค์ด “(())()”์ “((()))” ๋ VPS ์ด์ง๋ง “(()(”, “(())()))” , ๊ทธ๋ฆฌ๊ณ “(()” ๋ ..
Algorithm/BOJ
https://www.acmicpc.net/problem/10828 10828๋ฒ: ์คํ ์ฒซ์งธ ์ค์ ์ฃผ์ด์ง๋ ๋ช
๋ น์ ์ N (1 ≤ N ≤ 10,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ๋ช
๋ น์ด ํ๋์ฉ ์ฃผ์ด์ง๋ค. ์ฃผ์ด์ง๋ ์ ์๋ 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 100,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค. ๋ฌธ์ ์ ๋์์์ง www.acmicpc.net ๋ฐฑ์ค ์๊ณ ๋ฆฌ์ฆ 10828๋ฒ ์คํ๋ฌธ์ [๋ฌธ์ ] ์ ์๋ฅผ ์ ์ฅํ๋ ์คํ์ ๊ตฌํํ ๋ค์, ์
๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ ๋ช
๋ น์ ์ฒ๋ฆฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ๋ช
๋ น์ ์ด ๋ค์ฏ ๊ฐ์ง์ด๋ค. push X: ์ ์ X๋ฅผ ์คํ์ ๋ฃ๋ ์ฐ์ฐ์ด๋ค. pop: ์คํ์์ ๊ฐ์ฅ ์์ ์๋ ์ ์๋ฅผ ๋นผ๊ณ , ๊ทธ ์๋ฅผ ์ถ๋ ฅํ๋ค. ๋ง์ฝ ์คํ์ ๋ค์ด์๋ ์ ์๊ฐ ์๋ ๊ฒฝ์ฐ์๋ -1์ ์ถ๋ ฅํ๋ค. size: ์คํ์ ๋ค์ด์๋ ์ ์์ ๊ฐ์..
Spring
์ค๋์ h2 database ์ค์นํ๊ณ ์คํ๊น์ง ํด๋ด
์๋นโชโฟโช ์ ์ ํ๋ ๋ฐฉ์์ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ์ ํ๊ธฐ ๋๋ฌธ์ ์๋ฒ๊ฐ ์ข
๋ฃ๋๋ฉด ๋ฐ์ดํฐ๊ฐ ๋ค ์ฌ๋ผ์ง๊ฒ ๋๋ค. ๋ฐ์ดํฐ๊ฐ ์ฌ๋ผ์ง๋๊ฑธ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ์ ํด์ผํ๋ค! 1. https://www.h2database.com์ ์ ์ํด์ฃผ์ธ์! ์ ๋ All Platforms์ ๋ค์ด ๋ฐ์๊ณ ์์ถ๊น์ง ํ์ด์ฃผ์ธ์! 2. ์๋ฒ ์ ์ ์ค์น๋ ํ์ผ์ ์ด๊ณ ์์ ์๋ ๋ค๋ชจ๋ฅผ ํด๋ฆญํดํ๋ฉด ํ์ผ ๊ฒฝ๋ก๊ฐ ๋์ต๋๋น ์ด๊ฑธ ๋ณต์ฌํด๋๊ณ cmd๋ฅผ ์ด์ด์ cd ~~~~~ ์ด๋ ๊ฒ ๋ถ์ฌ๋ฃ๊ธฐ ํด์ค๋๋ค. window๋ h2.bat์ ์
๋ ฅํด์ฃผ๋ฉด ์ฐ๊ฒฐ์ด ๋ผ์!! macOS๋ ./h2.sh๋ฅผ ์
๋ ฅํด์ฃผ์ธ์. (mac์ ๊ทธ ์ ์ ๊ถํ์ ๋ถ์ฌํด์ผ๋๋๋ฐ chmod 755 h2.sh๋ฅผ ํด์ค์ผ ๊ถํ ๋ถ์ฌ๊ฐ..
Spring
๊ทธ๋์ ์์ฑํ ์ฝ๋๋ฅผ ํ ๋๋ก ํ์์ ๋ฑ๋กํ๊ณ , ์กฐํํ๋ ์ค์ต์ ์ค๋ ํ๋ค!!! ์ฌ์ค ์๋
์ ์ ๊ณต์์
๋ค์ผ๋ฉด์ ๋ค ํ๋ ๊ณผ์ ์ธ๋ฐ ๊ทธ๋ ๋๋ฌด ๋นจ๋์ด์ ์์ ๋ฐ๋ผ๊ฐ์ง ๋ชปํ์๋,,,, ๊ทธ๋ผ ์ ๋ฆฌ ํฌ์คํ
์์ูฉฬ(ห•อ ๊ด •อห)ู 1. HomeContoller ์์ฑ package hello.hellospring.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class HomeController { @GetMapping("/") // ๋ก์ปฌํธ์คํธ์ ๋ค์ด์ค๋ฉด public String home(){ return "h..
Spring
์ค๋์ ์์กด๊ด๊ณ์ ๋ํด์ ๋ฐฐ์ ๋ค! ์ผ๋ฅธ ๋ค์์ฃผ ์์ ์ง๊ธ ๋ฃ๊ณ ์๋ ์
๋ฌธ ๊ฐ์๋ฅผ ๋๋ด์ผ๊ฒ ๋ค,,,๏ฝก๏พ(๏พ´ω`๏พ)๏พ๏ฝก ์คํ๋ง ๋น์ ๋ฑ๋กํ๋ 2๊ฐ์ง ๋ฐฉ๋ฒ ์ปดํฌ๋ํธ ์ค์บ๊ณผ ์๋ ์์กด๊ด๊ณ ์ค์ ์๋ฐ ์ฝ๋๋ก ์ง์ ๋ฑ๋กํ๊ธฐ ์คํ๋ง๋น์ ์ฝ๊ฒ๋งํด์ ์๋ฐ ๊ฐ์ฒด๋ฅผ ์ด์ผ๊ธฐ ํ๋ค. ์ปดํฌ๋ํธ ์ค์บ์ ์ด์ฉํด์ ์๋์ ์ผ๋ก ์์กด๊ด๊ณ ์ค์ 1. ๋ฉค๋ฒ ์ปจํธ๋กค๋ฌ ์์ฑ package hello.hellospring.controller; import hello.hellospring.domain.Member; import hello.hellospring.service.MemberService; import org.springframework.beans.factory.annotation.Autowired; import org.springfram..
FRENCH
์ค๋์ ์์ ํ๋์ค ๋จ์ด ๋ช๊ฐ๋ฅผ ์ถ์ฒํด๋ณผ๊น ํฉ๋๋น(เน>แด