์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- ๋ฐฑ์ค
- ๋ฐฑ์๋
- ์ปด๊ณต์
- ๊ทธ๋ฆฌ๋์๊ณ ๋ฆฌ์ฆ
- ์ปด๊ณต
- SSE
- ์ฝ๋ฉ
- spring
- ์น๊ฐ๋ฐ๊ธฐ๋ก
- ๋ฆฌ์กํธ
- ํ์ด์ฌ
- ์คํ๋ง
- ์ฝ๋ฉํ ์คํธ
- ๋จ์ํ ์คํธ
- ํ๋ก ํธ์ค๋
- ๊ฐ๋ฐ์
- ํ๋ก๊ทธ๋๋ฐ
- ๋ฆฌ์กํธ๋ค์ดํฐ๋ธ
- ๋ฐฑ์คํ์ด
- ๋ฐฑ์ค1436
- boj11653
- ๊ทธ๋ฆฌ๋
- ์๊ณ ๋ฆฌ์ฆ
- ์ดํญ๊ณ์
- ChatGPT
- ๋ชจ๋ฐ์ผ์ฑํ๋ก๊ทธ๋๋ฐ
- ์ฐ์ ์์ํ
- ์ปดํจํฐ๊ณตํ
- ์น๊ฐ๋ฐ
- ์๋ฃ๊ตฌ์กฐ
- Today
- Total
๋ชฉ๋ก๋ฐฑ์๋ (9)
๐ป๐ญ๐ง๐
์ด๋ฒ ํ๋ก์ ํธ ์ค์ ์ ค ๋งํ๋ ๋ฌธ์ ... ๋ฌธ์ ๊ฐ ์ด๋์ ๋ฐ์ํ๋.. ํ๋ฉด์ ์๋ ๊ตฌ๊ธ ์์ ๋ก๊ทธ์ธ์ A to Z๋ฅผ ๋ฐฑ์๋์์ ๋ด๋นํ๋๋ก ๊ตฌํ์ ํ๋ค. ์ค๋๋ง์ ์ํ์ค ๋ค์ด์ด๊ทธ๋จ๋ ๊ทธ๋ ค๋ดค๋๋ฐ ์๋์ ๊ฐ๋ค. (draw. io ๋ ๊ทธ๋ฆฌ๊ธฐ๋ ์ฐธ ํธ๋ฆฌํ๋ฐ ์ ์ฅํ ๋ ํ์ง์ด ์กฐ๊ธ๋ง ๋ ๊ฐ์ ๋๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค.. .ใ ..) ๋ก๊ทธ์ธ ์์ฒญ๋ถํฐ Authorization Code๋ฅผ ๋ฐ์ ์ฌ์ฉ์ ์ ๋ณด ์์ฒญํ๋ ๊ฒ๊น์ง ์๋ฒ์์ ์งํ์ ํ๊ณ ์ต์ข accessToken ๋๋ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ํด๋ผ์ด์ธํธ ์ธก์ผ๋ก ๋ฐํํ๋๋ก ๊ตฌํํ์๋ค. (ํ์์ด๋ฉด ์ธ์ฆ/์ธ๊ฐ๋ฅผ ์ํ accessToken๋ง, ๋นํ์์ด๋ผ๋ฉด ํ์๊ฐ์ ์ ๋ฐ๋ก ์งํํ ์ ์๋๋ก ์ฌ์ฉ์์ ๋ณด (name, email, picture) ์ ๋ด์๋ณด๋ธ๋ค. ๊ทผ๋ฐ ์ ๋ง ์์์น๋ ๋ชปํ๊ฒ ํ๋ก ํธ(Re..
์๊ตฌ์ฌํญ ๊ฒฝ๊ธฐ ์์ 30๋ถ ์ ๋ถํฐ ๊ฒฝ๊ธฐ ๋ฆฌ๋ ํ๋ฉด์์ QR ์ฝ๋๋ฅผ ๋์ธ ์ ์๋ค. ์ฐธ๊ฐ ์ธ์๋ค์ ์ด QR ์ฝ๋๋ฅผ ์ดฌ์ํ์ฌ ์ถ์ ์ฒดํฌ๋ฅผ ํ๋ค. ์คํ ์์ค์ธ zxing ์ ์ฌ์ฉํ์๋ค. ์ฝ๋๊ฐ ๊ฐ๊ฒฐํด์ ์ฌ์ฉํ๊ธฐ ์ฌ์ ๋ค! build.gradle ํ์ผ์ ์์กด์ฑ์ ์ถ๊ฐํด์ค๋ค. implementation group: 'com.google.zxing', name: 'javase', version: '3.5.0' implementation group: 'com.google.zxing', name: 'core', version: '3.5.0' createQr(User user, Long matchId) QR ์ฝ๋๋ฅผ ์์ฑํ์ฌ ๋ฐ์ดํธ ํ์์ผ๋ก ๋ฐํํ๋ ๋ฉ์๋ public ResponseEntity createQr(User u..

#mood ์๋ ๊ณํ์ aws ํ๋ฆฌํฐ์ด๋ ์ผ๋ง ์๋จ์์ํ ๋ฐ ๊ทธ๋ฅ ํ๋ก ํธ ์ชฝ์์ ์คํ๋ง application ๋ฐํด์ ์ฌ์ฉํ๋๊ฑธ๋ฃจ ํ์.. ํ๋๋ฐ ์ญ์๋ ์ฌ์ด ์ผ์ด ์๋์๋ค. ์ด์ฉ๋ฉด ๊ฑ ๋ฐฐํฌ ํ๋ฒ ๋ฑ ํด๋๋๊ฒ ์ค๋ซ๋์ ํ๋ค์ง ์์ ๊ฒ ๊ฐ๋ค...! ๊ทธ๋์ ๊ทธ๋ฅ ๋ฐฐํฌ๋ฅผ ํ๊ฒ ๋๋ค ํ๋ก ํธ์๋๋ก ๋ฆฌ์กํธ ์ฝ๋๋ ์ด๋ฏธ ec2์ ๋ฐฐํฌํด๋ณธ ๊ฒฝํ์ด ์์ผ๋ฏ๋ก ๋์ถฉ ๋น์ทํ๊ฒ ์ง ํ๊ณ ์์! ๊ทผ๋ฐ ๋ฐ๋ก ์ด์๊ฐ ๋ฐ์ํ๋ค. ๋ฆฌ์กํธ๋ก ๊ฐ๋ฐ์ ํ ๋ ๋ณด์ ์ค์ ์ด ๋ง์ด ์๋ค๋ณด๋ ๊ฑฐ์ ๋ค ๊นํ๋ธ์ ๋ฐ๋ก ํธ์๋ฅผ ํ์๊ณ gitignore ํ๋ node_modules ๋ง์ ๋ ๊ทธ๋ฅ npm installํ๋ฉด ๋ฐ๋ก ์์ฑ๋๋ ๊ฒ๋ค์ด์๋๋ฐ, ์คํ๋ง์ ์ผ๋จ gitignore ํด๋๊ฒ ๋ง์๊ณ ๊นํ๋ธ ํด๋ก ํด์ ์ ์ํ๋ก ๋ณต๊ตฌ์ํฌ ์๋ (npm install ์ฒ๋ผ..
์ฌ์ค ์ ๋ฉ์ธ ๊ธฐ๋ฅ์ธ ์ฐธ๊ฐ ์ ์ฒญ ๊ธฐ๋ฅ์ด๋ค. ์ฒ ์ ํ ๊ตฌ๋ถํด์ ๊ตฌํํ๋ ๊ธฐ๋ฅ๋ค์ด ์ด์ ๋ ์ด๊ฒ์ ๊ฒ ์์ด๊ธฐ ์์ํ๋๊น ์ด ๋ฉ์๋๋ ์ฌ๊ธฐ๋ค๊ฐ ๋๋๊ฒ ๋์๊น ์ ๊ธฐ๋ค๊ฐ ๋๋๊ฒ ๋์๊น.. ํ๋ ๊ณ ๋ฏผ์ด ์๊ธฐ๊ธฐ ์์ํ๋ ๊ฒ ๊ฐ๋ค. ๊ทธ๋ฆฌ๊ณ ์ ์ ๋น์ฆ๋์ค ๋ก์ง ์ฐจ์์์ ๋ค๋ค์ผํ ์ ์ฝ ์กฐ๊ฑด๋ค์ด ์๊ธฐ๋ ์ ๋ฒ ์ฌ๋ฐ๋ค !! ๐ฅน๐ ๊ฒฝ๊ธฐ ์ฐธ๊ฐ ์ ์ฒญ ๊ธฐ๋ฅ์ ์กฐ๊ฑด์ ๋ค์๊ณผ ๊ฐ๋ค. โ user์ ์กฐ๊ฑด์ด ํด๋น ๋งค์น ํ๊ทธ๋ค์ ์กฐ๊ฑด๊ณผ ๋ถํฉํ์ง ์์ ๊ฒฝ์ฐ ์ฐธ๊ฐ ์ ์ฒญ ๋ถ๊ฐ โ match์ ํ์ฌ ์ฐธ๊ฐ ์ ์ฒญ ์ธ์์ด ์ ์ฒด ๋ชจ์ง ์ธ์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ, (์ฐธ๊ฐ ์ธ์์ ๋ชจ๋ ๋ชจ์งํ์ ๊ฒฝ์ฐ) ์ฐธ๊ฐ ์ ์ฒญ ๋ถ๊ฐ โ user ๊ฐ ์ด๋ฏธ ์ฐธ๊ฐ ์ ์ฒญํ ๋งค์น๋ค๊ณผ ์๊ฐ์ด ๊ฒน์น๋ฉด ์ฐธ๊ฐ ์ ์ฒญ ๋ถ๊ฐ โ ์ด์ธ๋ ์ฐธ๊ฐ ์ ์ฒญ ์๋ฃ ํ์ ํด๋น ๋งค์น์ ํ์ฌ ์ฐธ๊ฐ ์ ์ฒญ ์ธ์ ์ 1 ์ฆ๊ฐ ์ด ์กฐ๊ฑด..
์์ ๊ณผ ์ญ์ ๋ ์์๋๋ก ์ฌ์ ๋ค! ์๋ก์ด ํด๋์ค ์์ฑ์ด ์์ผ๋ฏ๋ก ํจํค์ง ๊ณ์ธต ๊ตฌ์กฐ๋ ๊ทธ๋๋ก๋ ์คํต! 1. ๋ชจ์ง๊ธ ์ญ์ public String deleteById(Long id){ try{ postRepository.deleteById(id); return "๋ชจ์ง๊ธ ์ญ์ ์๋ฃ"; }catch (Exception e){ return "๋ชจ์ง๊ธ ์ญ์ ์คํจ " + e; } } ์ Jpa๋ผ๋๊ฑฐ.. ์ ๋ง ๋ฌ๋ค ๋ชจ์ง๊ธ id๋ฅผ ์ ๋ฌ ์ธ์๋ก ๋ฐ์ JpaRepository ๋ฅผ ์์๋ฐ๋ PostRepository์ deleteById ๋ฉ์๋๋ฅผ ์ด์ฉํ์ฌ ํด๋น ๋ชจ์ง๊ธ์ ์ญ์ ํ๋ค. @DeleteMapping("/api/post/{id}") public ResponseEntity deletePostById(@PathVariable ..

๋ชจ์ง๊ธ์ ๋ฑ๋กํ ์ ์๋ api๋ฅผ ๊ตฌํํด๋ณธ๋ค. ๋ชจ์ง๊ธ์๋ ๊ธฐ๋ณธ์ ์ธ title, content , category, (๋ฑ๋กํ๋ ์ฌ์ฉ์์) userEmail (โก๏ธ ์ด๊ฑด ํ ํฐ์ ์ด์ฉํ ์ ์๊ฒ ๋๋ฉด ๋ณ๊ฒฝํ ์์ ์ด๋ค.) ์ด ํ์ํ๋ค. ์ถ๊ฐ์ ์ผ๋ก ๋ชจ์ง๊ธ ๋ฑ๋ก ์์ ํจ๊ป ์์ฑํด์ผ ํ Match ๊ฐ์ฒด์ ํ๋๋ค์ด ํ์ํ๊ณ ์ฑ๋ณ, ๋์ด๋, ๋์ด๋ ๋ฑ์ ํ๊ธฐํ ์ ์๋ Tag ๊ฐ์ฒด๊ฐ ๋ค์ด๊ฐ๋ค. (โ Match : ๊ฒฝ๊ธฐ ์ธ์ ์, ๊ฒฝ๊ธฐ ์ฅ์, ๊ฒฝ๊ธฐ ๋ ์ง๊ฐ ๋ค์ด๊ฐ๋ค.) ํ์ฌ๊น์ง์ ํจํค์ง ๊ณ์ธต ๊ตฌ์กฐ ๋๋ฆ๋๋ก ์ฒด๊ณ์ ์ผ๋ก ์ ๋ฆฌํ๋ ค๊ณ ๋ ธ๋ ฅ ์ค์ธ๋ฐ ์ํ๊ณ ์๋ ๋ชจ๋ฅด๊ฒ ๋ค..~ AddPostRequest.java ๋ชจ์ง๊ธ ๋ฑ๋ก ์ request body์ ๋ค์ด๊ฐ dto @NoArgsConstructor @AllArgsConstructor..

์ด๋ฒ์๋ ๊ตฌ๊ธ ์์ ๋ก๊ทธ์ธ์ผ๋ก๋ถํฐ ์ ๊ณต๋ฐ์ ์ด๋ฆ, ์ด๋ฉ์ผ, ํ๋กํ ์ด๋ฏธ์ง๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ ์ ์๋๋ก ๊ตฌํํ์๋ค. ์ด๋ ํ์๊ฐ์ ์ ํ์ง ์์ ๊ตฌ๊ธ ๊ณ์ ์ ๊ฒฝ์ฐ, ์ฑ๋ณ, ๋์ด๋, ์ฑ๋ณ/๋์ด๋ ๊ณต๊ฐ ์ฌ๋ถ ํ๋๋ฅผ ๋ ์ถ๊ฐํด์ผํ๋ฏ๋ก ํ์๊ฐ์ ์ฌ๋ถ๋ฅผ ํ์ธํด์ ๋ก์ง์ ๋๊ฐ๋ก ๋๋์๋ค. ํ์ฌ๊น์ง ๊ตฌํํ ๋๋ฉ์ธ ๊ณ์ธต๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ๋ค. ์ด๋ฒ์ ์ค์ ์ ์ผ๋ก ๋ณผ ๊ฒ์ `LoginController.java`, `User.java`, `MemberStatusResponse`, `SaveUserRequest.java`, `UserService.java` ์ด๋ค. LoginController.java ์ requestUserInfo ๋ฉ์๋ ๊ธฐ์กด์ ๋จ์ํ ์ ์ ์ ๋ณด๋ฅผ ๋ก๋ํ๋ ๋ฐฉ์์์, ํ์ ์ฌ๋ถ๋ฅผ ํ์ธํ๊ณ ๋นํ์์ผ ๊ฒฝ์ฐ ํ์..
@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..