์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- ๋ฆฌ์กํธ๋ค์ดํฐ๋ธ
- ๋ชจ๋ฐ์ผ์ฑํ๋ก๊ทธ๋๋ฐ
- ์ปดํจํฐ๊ณตํ
- ์ฐ์ ์์ํ
- ์น๊ฐ๋ฐ
- ์ปด๊ณต์
- ๋ฆฌ์กํธ
- ๋ฐฑ์ค1436
- ํ๋ก๊ทธ๋๋ฐ
- ๊ทธ๋ฆฌ๋์๊ณ ๋ฆฌ์ฆ
- ์คํ๋ง
- ํ๋ก ํธ์ค๋
- spring
- ์๊ณ ๋ฆฌ์ฆ
- ๋ฐฑ์คํ์ด
- boj11653
- ์ปด๊ณต
- ์ฝ๋ฉํ ์คํธ
- ChatGPT
- ์ดํญ๊ณ์
- ๋ฐฑ์ค
- ๋จ์ํ ์คํธ
- ๊ฐ๋ฐ์
- SSE
- ์ฝ๋ฉ
- ์๋ฃ๊ตฌ์กฐ
- ์น๊ฐ๋ฐ๊ธฐ๋ก
- ํ์ด์ฌ
- ๊ทธ๋ฆฌ๋
- ๋ฐฑ์๋
- Today
- Total
๋ชฉ๋ก์ ์ฒด ๊ธ (72)
๐ป๐ญ๐ง๐

์ด๋ฒ์๋ ๊ตฌ๊ธ ์์ ๋ก๊ทธ์ธ์ผ๋ก๋ถํฐ ์ ๊ณต๋ฐ์ ์ด๋ฆ, ์ด๋ฉ์ผ, ํ๋กํ ์ด๋ฏธ์ง๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ ์ ์๋๋ก ๊ตฌํํ์๋ค. ์ด๋ ํ์๊ฐ์ ์ ํ์ง ์์ ๊ตฌ๊ธ ๊ณ์ ์ ๊ฒฝ์ฐ, ์ฑ๋ณ, ๋์ด๋, ์ฑ๋ณ/๋์ด๋ ๊ณต๊ฐ ์ฌ๋ถ ํ๋๋ฅผ ๋ ์ถ๊ฐํด์ผํ๋ฏ๋ก ํ์๊ฐ์ ์ฌ๋ถ๋ฅผ ํ์ธํด์ ๋ก์ง์ ๋๊ฐ๋ก ๋๋์๋ค. ํ์ฌ๊น์ง ๊ตฌํํ ๋๋ฉ์ธ ๊ณ์ธต๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ๋ค. ์ด๋ฒ์ ์ค์ ์ ์ผ๋ก ๋ณผ ๊ฒ์ `LoginController.java`, `User.java`, `MemberStatusResponse`, `SaveUserRequest.java`, `UserService.java` ์ด๋ค. LoginController.java ์ requestUserInfo ๋ฉ์๋ ๊ธฐ์กด์ ๋จ์ํ ์ ์ ์ ๋ณด๋ฅผ ๋ก๋ํ๋ ๋ฐฉ์์์, ํ์ ์ฌ๋ถ๋ฅผ ํ์ธํ๊ณ ๋นํ์์ผ ๊ฒฝ์ฐ ํ์..
๊ตฌ๊ธ ๋ก๊ทธ์ธ ๊ตฌํ์ ์๋์ ๋ธ๋ก๊ทธ๋ฅผ ๊ต์ฅํ ๋ง์ด ์ฐธ๊ณ ํ์ต๋๋ค!!! ๋๋ฌด๋๋ฌด๋๋ฌด๋๋ฌด ๋์์ด ๋ง์ด ๋์ด์ ๊ฐ์ฌํฉ๋๋ค... https://antdev.tistory.com/71 [Google Login API] ์์ ๋ก๊ทธ์ธ ์์ฒญ Redirect ์ฒ๋ฆฌ - 2 (Spring Boot ๋ ํผ๋ฐ์ค๋ฅผ ๋ณด๋ฉด์ ๊ตฌํํด๋ณด๋ ๊ตฌ๊ธ ์ Spring Boot ํ๊ฒฝ์์ ๊ตฌ๊ธ ์์ ๋ก๊ทธ์ธ API๋ฅผ REST ๋ฐฉ์์ผ๋ก ๊ตฌํํ๊ธฐ ์ด์ ๊ธ 2020/10/18 - [OAuth/Google Login API] - [Google Login API] ์์ ๋ก๊ทธ์ธ ์์ฒญ Redirect ์ฒ๋ฆฌ (Spring Boot ๋ ํผ๋ฐ์ค๋ฅผ ๋ณด๋ฉด์ ๊ตฌํํด๋ณด๋ ๊ตฌ antdev.tistory.com ๋๋ฉ์ธ ๊ณ์ธต ๊ตฌ์กฐ ๋ํ๋ด๋ ค๊ณ ๋๋์ด tree๋ ์ค์นํ์๋ค! ์ด๋ฒ ์์ ๋ก๊ทธ..

ํ๋ก์ ํธ ๊ฐ๋ต ์๊ฐ : ํจ๊ป ์ด๋ ๊ฒฝ๊ธฐ๋ฅผ ํ ์ธ์์ ๋ชจ์งํ๋ ์๋น์ค ๋จผ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ ์์ ๋ฐฐ์ ๋ ๋ด์ฉ๋ค์ ๋ค์ ๋ณต๊ธฐ์์ผ ERD ๋ฅผ ์์ฑํ๋ค. ์ํ๊ตฌ์กฐ๊ฐ ๋๋๊ฑด ์ข์ง ์๋ค๊ณ ํ๋๋ฐ.. ์๋ฌด๋ฆฌ ์๊ฐํด๋ ๋ค๋ฅธ ๋ฐฉ์์ด ๋ ์ค๋ฅด์ง ์์๋ค. ERD ๋ง ๋ดค์ ๋ USER๊ฐ POST์ MATCH ๋ ์ํฐํฐ ๋ชจ๋์ ๊ด๊ณ๊ฐ ์๋ ๊ฒ์ด ์ด์ํด๋ณด์ด๋๋ฐ POST ๋ฅผ ๋ฑ๋กํ USER ์ ๊ฒฝ์ฐ์๋ POST -> MATCH ์ ๊ฐ์ด MATCH ์ํฐํฐ๋ก ์ ๊ทผ์ด ๊ฐ๋ฅํ์ง๋ง, ๋จ์ํ ๋ฑ๋ก๋ ๋ชจ์ง๊ธ์ ํตํด MATCH ์ ์ฐธ๊ฐ ์ ์ฒญ์ ํ ๊ฒฝ์ฐ์๋ PARTICIPATION -> MATCH ์ ํตํด ์ ๊ทผํ๋ ๋ฐฉ๋ฒ ๋ฟ์ด๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋ผ ์์ MATCH๋ฅผ ์์ ..? ๊ธฐ์๋ MATCH ์ํฐํฐ ์์ฒด๊ฐ ๊ฐ๋ ํ๋๋ค์ด ๋ง์๊ธฐ์ ๊ทธ๋ฅ ๋ฐ๋ก ๋บ๋ค. ๊ทธ๋ฆฌ..
@Test public void save(){ Member member = new Member(); member.setName("Spring"); repository.save(member); Member result = repository.findById(member.getId()).get(); Assertions.assertThat(member).isEqualTo(result); } Test ๋ฉ์๋ ์์๋ @Test ์ด๋ ธํ ์ด์ ํ๊ธฐ Assertions ๋ด๊ฐ ๊ฐ์ ํ๊ณ ์๋ ์ฌ์ค์ด ์ค์ ์ ๊ฐ์์ง ๋ช ์ํ ์ ์๋ ๋๊ตฌ Assertion.assertThat(expected,actual) โก๏ธ JUnit ๋ฉ์๋๋ก, expected ์ actual ๊ฐ ๊ฐ์์ง ๋น๊ต โ ์์ ์ ์ํด์ผ ํจ !!!! Assertion...
Map key ๋ก value๋ฅผ ์ป์ด๋ด๋ ๋ฐฉ์ key ๋ ์ค๋ณต ํ์ฉ โ value ๋ ์ค๋ณต ํ์ฉ ๐ HashMap map = new HashMap(); map.put("name", "Sally"); -> key๊ฐ "name"์ด๊ณ , value๊ฐ "Sally" ์ธ ๊ฒ์ map์ ์ฝ์ ํ๋ ๊ฒ Optional NullPointerException ์ ๋ฐฉ์งํ๊ธฐ ์ํด null ๊ฐ์ด ์ค๋ฉด ๊ฐ์ธ๋ ๊ฒ Optional.ofNullable() : ๊ฐ์ด null ์ด ์๋ ๊ฐ์ฒด ์์ฑ Optional.of() : ๊ฐ์ด null ์ด ์๋ ๊ฒฝ์ฐ์๋ง ๊ฐ์ฒด ์์ฑ Optional.empty() : ๊ฐ์ด ๊ฐ์ง ์๋ ๊ฐ์ฒด ์์ฑ #### Map ์์ ํน์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ฐ์ฒด ์ฐพ๊ธฐ @Override public Optional findByNa..
๋ฌธ์ https://www.acmicpc.net/problem/1920 1920๋ฒ: ์ ์ฐพ๊ธฐ ์ฒซ์งธ ์ค์ ์์ฐ์ N(1 โค N โค 100,000)์ด ์ฃผ์ด์ง๋ค. ๋ค์ ์ค์๋ N๊ฐ์ ์ ์ A[1], A[2], โฆ, A[N]์ด ์ฃผ์ด์ง๋ค. ๋ค์ ์ค์๋ M(1 โค M โค 100,000)์ด ์ฃผ์ด์ง๋ค. ๋ค์ ์ค์๋ M๊ฐ์ ์๋ค์ด ์ฃผ์ด์ง๋๋ฐ, ์ด ์๋ค www.acmicpc.net ์ฝ๋ from bisect import bisect_left, bisect_right n = int(input()) nlist = list(map(int, input().split())) nlist.sort() m = int(input()) mlist = list(map(int, input().split())) for i in range(m):..
๋ฌธ์ https://www.acmicpc.net/problem/1436 1436๋ฒ: ์ํ๊ฐ๋ ์ 666์ ์ข ๋ง์ ๋ํ๋ด๋ ์๋ผ๊ณ ํ๋ค. ๋ฐ๋ผ์, ๋ง์ ๋ธ๋ก๋ฒ์คํฐ ์ํ์์๋ 666์ด ๋ค์ด๊ฐ ์ ๋ชฉ์ ๋ง์ด ์ฌ์ฉํ๋ค. ์ํ๊ฐ๋ ์์ ์ธ์์ ์ข ๋ง ์ด๋ผ๋ ์๋ฆฌ์ฆ ์ํ์ ๊ฐ๋ ์ด๋ค. ์กฐ์ง ๋ฃจ์นด์ค๋ ์คํ์ www.acmicpc.net ์ฝ๋ n = int(input()) result = 1 endNum = 666 while (True): numString = str(endNum) # ์ ์์ธ endNum์ ๋ฌธ์์ด๋ก ๋ณํํ์ฌ '666'์ด ์๋์ง ํ์ธํ ์ ์๋๋ก ํจ if '666' in numString: if n == result: # ์ํ๋ ๋ฒ์งธ์ ์ข ๋ง ์ซ์๊ฐ ๋ง๋ค๋ฉด print(endNum) break else: resu..
๋ฌธ์ https://www.acmicpc.net/problem/12605 12605๋ฒ: ๋จ์ด์์ ๋ค์ง๊ธฐ ์คํ์ด์ค๋ก ๋์ด์ฐ๊ธฐ ๋ ๋จ์ด๋ค์ ๋ฆฌ์คํธ๊ฐ ์ฃผ์ด์ง๋, ๋จ์ด๋ค์ ๋ฐ๋ ์์๋ก ๋ค์ง์ด๋ผ. ๊ฐ ๋ผ์ธ์ w๊ฐ์ ์๋จ์ด๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ, ์ด L๊ฐ์ ์ํ๋ฒณ์ ๊ฐ์ง๋ค. ๊ฐ ํ์ ์ํ๋ฒณ๊ณผ ์คํ์ด์ค๋ก๋ง www.acmicpc.net ์ฝ๋ from collections import deque n = int(input()) for i in range(n): array = deque([]*100) string = list(input().split(' ')) for j in range(len(string)): array.append(string[j]) print('Case #'+str(i+1)+": ",end='') for ..
๋ฌธ์ https://www.acmicpc.net/problem/1021 1021๋ฒ: ํ์ ํ๋ ํ ์ฒซ์งธ ์ค์ ํ์ ํฌ๊ธฐ N๊ณผ ๋ฝ์๋ด๋ ค๊ณ ํ๋ ์์ ๊ฐ์ M์ด ์ฃผ์ด์ง๋ค. N์ 50๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๊ณ , M์ N๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๋ค. ๋์งธ ์ค์๋ ์ง๋ฏผ์ด๊ฐ ๋ฝ์๋ด๋ ค๊ณ ํ๋ ์์ ์์น๊ฐ www.acmicpc.net ์ฝ๋ from collections import deque n, m = map(int, input().split(' ')) array = list(map(int, input().split(' '))) numlist = deque((i+1) for i in range(n)) result = 0 idx = 0 for i in range(m): for j in range(n): if array..
๋ฌธ์ https://www.acmicpc.net/problem/18258 18258๋ฒ: ํ 2 ์ฒซ์งธ ์ค์ ์ฃผ์ด์ง๋ ๋ช ๋ น์ ์ N (1 โค N โค 2,000,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ๋ช ๋ น์ด ํ๋์ฉ ์ฃผ์ด์ง๋ค. ์ฃผ์ด์ง๋ ์ ์๋ 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 100,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค. ๋ฌธ์ ์ ๋์์์ง www.acmicpc.net ์ฝ๋ import sys N = int(sys.stdin.readline().rstrip()) que = [0] * 2000001 front = 0 rear = 0 no = 0 def is_empty(): global no if no