![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cr1VC3/btq2aOiWBw9/gKk4X54uCOkuVTBRG7DeP0/img.png)
๊ฐ์๊ธฐ ๋ ธ๋๋ฅผ ๋ฐฐ์ฐ๊ฒ ๋์๋ค. ๊ณ์ ๋ถ์ก๊ณ ์๋ ์๋ฐ์ ์คํ๋ง์ ๋ฏธ๋ จ์ด ๋จ์ง๋ง ์ด์ฉ๊ฒ ๋๊ฐ ํ๋ผ๋๊ฑฐ ํด์ผ์ง๐ฐ ํ์ฌ์์๋ VScode๋ฅผ ์ฐ๋๋ฐ ํผ์ ๋ฐ๋ก ๊ณต๋ถํ ๋๋ ์ธํ ๋ฆฌ์ ์ด๋ฅผ ์ฐ๊ณ ์ถ์ด! ์ธํ ๋ฆฌ์ ์ด๊ฐ ์ข๋จ๋ง์ฌ! Node.js๋ VScode IDE๊ฐ ์ ์ ํ๋ค๊ณ ๋ค ํ๋๋ฐ ์ธํ ๋ฆฌ์ ์ด๊ฐ ์์ ์กฐ๊ธ ์ต์ด์ ๊ทธ๋ฐ์ง ์ธํ ๋ฆฌ์ ์ด๋ก๋ ์ฌ์ฉํด๋ณผ๋ NodeJS ์ค์น ๋ ธ๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ค์น๊ฐ ๋์ด์๋ค๊ณ ๊ฐ์ ํ๊ณ ํจ์ค IntelliJ Plug-in ์ค์น Setting[`Ctrl` + `Alt` + `s`] > Plugins ๊ฒ์ Node.js Install EJS Install
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/IjFdG/btqWUMy0YnM/Big67HDN8Ki36p8W1dp3B0/img.png)
Spring ์คํฐ๋๋ฅผ 5์ฃผ๊ฐ ์งํํ์๋ค. ์ฝ๋ฆฐ์ด์ธ ๋๋ ๋์ด๋๊ฐ ๋ชน์ ์ด๋ ต๊ณ ๋ฐ๋ผ๊ฐ๊ธฐ ๋ฒ ์ฐผ๋ ์คํฐ๋์๋ค. ๊ทธ๋๋ ์๊ฒ๋๊ฒ๋ ๋ง์ด ์๊ณ ๋ด๊ฐ ์๋๊ฒ๊ณผ๋ ๋ค๋ฅธ ๋ด์ฉ๋ ์์ด์ ํ๊ธธ ์ํ๋ค๋ ์๊ฐ์ด๋ ๋ค. ๊ด๋ จ ์ฐธ๊ณ ์๋ฃ๋ฅผ ์ฐ์ ๋ค ์ ์ฅํด๋๊ณ ํ๋ ํ๋ ๋ค์ ๋ณด๋๋ก ํ ๊ฒ์ด๋ค. Restful API DEVOPEDIA ์๋ฌธ์ผ๋ก ๋์ด์๋ ์ค๋ช [Richardson Maturity Model](https://devopedia.org/richardson-maturity-model#summary) ๋ฆฌ์ฐจ๋ ์ฑ์๋ ๋ชจ๋ธ ํ๊ธ ์ค๋ช [Richardson Maturity Model](https://brunch.co.kr/@pubjinson/12) NAVER DEVIEW 2017 [๊ทธ๋ฐ REST API๋ก ๊ด์ฐฎ์๊ฐ by ์ด์์ค](h..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/OGGjB/btqT8JkezgP/dwapTw1lkK0pZtOGEHs4vK/img.png)
์ด๋ฒ์ ์คํฐ๋๋ฅผ ํ๋ฉด์ spring security์ ๋ํด ์ฒ์ ์ ๋๋ก ์ ํ๊ฒ ๋์๋ค. ์ธ์คํ๊ทธ๋จ ํด๋ก ํ๋ก์ ํธ๋ฅผ ํ ๋ ์ธ์ฆ ๊ฐ์ ๊ฒฝ์ฐ์๋ ์ธ์ ์ ์ฌ์ฉํ์๊ณ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ spring security๋ฅผ ์ฌ์ฉํ๊ธด ํ์ง๋ง ์ด๊ฒ์ด ๋์ฒด ์ด๋์ ์ฐ์ด๋๊ฑด์ง ์ ํํ๊ฒ ์์ง ๋ชปํ์๋ค. ๋๋ถ๋ถ์ Spring ๊ธฐ๋ฐ ํ๋ก์ ํธ๋ Spring Security๋ฅผ ํตํด ์ฌ์ฉ์๋ฅผ ์๋ณํ๊ณ ํน์ ๋ฆฌ์์ค์ ์ ๊ทผํ ์ ์๋๋ก ํ๋ค๊ณ ํ๋ ์ดํดํ๊ธฐ ์ํด ์ด์ฌํ ๊ตฌ๊ธ๋งํ๊ณ ์ดํดํ ๊ฒ์ ๊ธฐ๋กํด๋ณด๊ณ ์ ํ๋ค. 1. Spring Security ์คํ๋ง ์ธ์ฆํ๋ฉด ๋น ์ง ์ ์๋ ๊ฒ์ด Spring Security์ด๋ค. ๋๋ถ๋ถ Spring ๊ธฐ๋ฐ ํ๋ก์ ํธ๋ Spring Security๋ฅผ ํตํด ์ฌ์ฉ์๋ฅผ ์๋ณํ๊ณ ํน์ ๋ฆฌ์์ค์ ์ ๊ทผํ ์ ์๋๋ก ์ญํ ์ ๋ถ์ฌํ..
์ดํด๋ฆฝ์ค๋ฅผ ์ฌ์ฉํ๋ค๋ณด๋ฉด ์์ฃผ ๋ง์ฃผ์น๊ฒ๋๋ ์๋ฌ์ด๋ค. ์๋ฒ๊ฐ ์คํ์ด ์๋๋ค๋๊ฑด๋ฐ ๋ญ ๋ค์ํ ์์ธ์ผ๋ก ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. The specified JRE installation does not exist ๋ฑ๋ก๋ ํ๋ก์ ํธ์ ์๋ฒ์ JRE ๊ฒฝ๋ก๊ฐ ์๋ชป ์กํ ๊ฒฝ์ฐ์ ๋ฐ์ํ๋ ์๋ฌ์ผ ํ๋ฅ ์ด ๋๋ค. ๊ฒฝ๋ก๋ฅผ ์ฌ์ค์ ํด์ฃผ๋ฉด ์๋ฌ๋ฅผ ํด๊ฒฐํ ์ ์๋ค. Window > Proferences > Server > Runtime Environment ์์ ์๋ฒ๋ฅผ ์ ํํ์ฌ ์ฐํด๋ฆญ Edit๋ก ๊ฒฝ๋ก๋ฅผ ์ฌ์ค์ ํด์ค๋ค.
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/LsYSY/btqIasfCleW/MuQJW3CHEXtSeX5bTB1xT1/img.png)
์๋ฐ ๊ธฐ๋ฐ์ ์น ์ ํ๋ฆฌ์ผ์ด์ (ํฐ์บฃ๊ณผ ์คํ๋ง๋ถํธ)๊ฐ ์๋ํด์ผํ๋ ์๋ฒ๋ค์์๋ ํ์์ ์ผ๋ก ํด์ผํ๋ ์ค์ ๋ค Java 8 ์ค์น ํ์์กด ๋ณ๊ฒฝ : ๊ธฐ๋ณธ ์๋ฒ์ ์๊ฐ์ ๋ฏธ๊ตญ ์๊ฐ๋ ์ด๋ค. ํ๊ตญ ์๊ฐ๋๊ฐ ๋์ด์ผ์ง ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ์๊ฐ์ด ๋ชจ๋ ํ๊ตญ ์๊ฐ์ผ๋ก ๋ฑ๋ก๋๊ณ ์ฌ์ฉ๋๋ค. ํธ์คํธ๋ค์ ๋ณ๊ฒฝ : IP๋ง์ผ๋ก๋ ์ด๋ค ์๋ฒ๊ฐ ์ด๋ค ์ญํ ์ ํ๋์ง ์ ์ ์์ผ๋๊น ์ด๋ฅผ ๊ตฌ๋ถํ๊ธฐ ์ํด ํธ์คํธ ๋ค์์ ๋ฑ๋กํด์ค๋ค. Java 8 ์ค์น ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ง์กด ๋ฆฌ๋ ์ค 1์์๋ ์๋ฐ ๋ฒ์ ์ด 7์ด๋ค. ์๋ฐ 8์ EC2์ ์ค์นํ๋ค. sudo yum install -y java-1.8.0-openjdk-devel.x86_64 ์ค์น๊ฐ ์๋ฃ๋์๋ค๋ฉด ์ธ์คํด์ค์ Java ๋ฒ์ ์ 8๋ก ๋ณ๊ฒฝํ๋ค. sudo /usr/sbin/alternatives --confi..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/dlUYqW/btqFNE5qev6/Z9SXxnZkbixKwyKLmkOPdK/img.png)
def solution(arrangement): answer = 0 # ์ ๋ง๋๊ธฐ ์กฐ๊ฐ ๋ณ์ stack = [] # ๋ฐฐ์ด ์์๋ก ๋ด์ ์คํ meet = False # )๋ง๋ฌ๋์ง ํ์ธ ์ฌ๋ถ for arr in arrangement: # (๋ฅผ ๋ง๋ ๊ฒฝ์ฐ if arr == '(': # ์คํ์ ์ ์ฅ stack.append(arr) meet = False # )๋ฅผ ๋ง๋ ๊ฒฝ์ฐ else: # ์คํ์์ ๊บผ๋ stack.pop() # )๊ฐ ์ฒ์์ผ๋ก ๋์ค๋๊ฒฝ์ฐ : ๋ ์ด์ ์๊ธฐ if meet == False: answer += len(stack) # )๊ฐ ์ฐ์์ผ๋ก ๋์ค๋๊ฒฝ์ฐ : ๋ง๋๊ธฐ๊ฐ ๋๋จ else: answer += 1 # )๋ฅผ ๋ง๋ฌ์ผ๋ True๋ก ์ ํ meet = True return answer ๋ญ๊ฐ ์๋นํ ์ฝ๊ณ ๋น ๋ฅด..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/5fDq5/btqFPG8zCxf/L4bErX40rbtxTDIzLbWmgk/img.png)
def solution(dirs): curr = [0, 0] # ํ์ฌ ์์น total_visited = [] # ๋ฐฉ๋ฌธํ ๊ณณ for order in dirs: print("=== order : {} ===".format(order)) visited = [curr] if order == 'U': curr = up(curr) elif order == 'D': curr = down(curr) elif order == 'L': curr = left(curr) elif order == 'R': curr = right(curr) visited.append(curr) visited = sum(sorted(visited), []) print("๋ฐฉ๋ฌธํ ๊ณณ: {}".format(visited)) total_visited.a..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/brVSiY/btqFJqM1X1m/QEdWxEp2nmUv65mklXH6dk/img.png)
์ฒ์์ ์๊ฐํ์ ๋ minํจ์๋ฅผ ์จ์ ์ต์๊ฐ์ ์ฐพ์์ ๋น๊ตํ๋ ๋ฐฉ์์ ์๊ฐํ๋ค. ๊ทผ๋ฐ ์ด๋ ๊ฒํ๋ฉด ๋น๊ตํด์ผํ ๊ฒ๋ ๋ง๊ณ ์ด๋ค ์ ์ด ์ต์๊ฐ์ด ๋๋์ง ๋งค๋ฒ ๋ฌ๋ผ์ง ์ ์๊ธฐ ๋๋ฌธ์ ๋ง๋ ๋ฐฉ๋ฒ์ด ์๋๊ฒ๊ฐ๋ค. ๋ ๋ฒจ 1๋ฌธ์ ์ธ๋ฐ๋ ํ์ด ๋ฐฉ๋ฒ์ด ๋ ์ค๋ฅด์ง ์์๋๋ฐ ๊ฐ๊ฐ์ ์ซ์๊ฐ ์ ๋ถ ์ง์๊ฐ ๋์ด์ผ ์ ์ด ๋ค๊ฐ๊ฐ ๋ค ์๋๊ฒ์ด ๋๋๊น ํ์๊ฐ์ธ ์ซ์๋ฅผ ๋ฝ์์ ๋ฆฌํดํ๋ฉด ๋๋จธ์ง ํ ์ ์ ์ฐพ์ ์ ์์ ๊ฒ์ด๋ค. ์ ๋ฒ ์คํฐ๋๋ ์๊ฒ๋ collection ๋ชจ๋์ counter๋ฅผ ์ด์ฉํด์ ์ซ์๋ฅผ ๋ฝ์๋ด๋ณด๊ฒ ๋ค! import collections def solution(v): answer = [] # 2์ฐจ์ ๋ฆฌ์คํธ๋ฅผ 1์ฐจ์์ผ๋ก ๋ง๋ค๊ธฐ v = sum(v, []) # ๋ฆฌ์คํธ์์ ๊ฐ๋ค ์ซ์์ธ๊ธฐ v = collections.Counter(v) # ํ..
- Total
- Today
- Yesterday
- ๊ฐ๋ฐ
- ์๊ณ ๋ฆฌ์ฆ
- ๋ถํธ ์๋์์ฑ
- tomcat์ค์น
- java jdk ์ค์น
- ๊ฒ์ํ ์กฐํ
- Algorithm
- ์ ์ฒด๊ฒ์๋ฌผ ์กฐํ
- ์๋ฐ
- ์ดํด๋ฆฝ์ค ํ๊ธ ์ธ์ฝ๋ฉ
- ๊ฒ์ํ ์ญ์
- ์คํ๋ง๋ถํธ ์๋์์ฑ
- ๊ฐ๋ฐํ๊ฒฝ๊ตฌ์ถ
- ๋ณ๋ช ์ฒ๋ฆฌ
- mysql์ค์น
- java ํ๊ฒฝ๋ณ์
- ๊ฒ์๋ฌผ์กฐํ
- Java
- ๊ฒ์๋ฌผ ์ญ์
- typeAliases
- ์จ๋ฆฌ์์ค
- ๊ฒ์ํ๋ง๋ค๊ธฐ
- ์๋ฃ๊ตฌ์กฐ
- ์ดํด๋ฆฝ์ค ์ค์น
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |