Courses
Reviews
- Hodolman's Stomach-Turning Development Show (SpringBoot, Vue.JS, AWS)
- Hodolman's Stomach-Turning Development Show (SpringBoot, Vue.JS, AWS)
- Hodolman's Stomach-Turning Development Show (SpringBoot, Vue.JS, AWS)
- Hodolman's Stomach-Turning Development Show (SpringBoot, Vue.JS, AWS)
- Hodolman's Stomach-Turning Development Show (SpringBoot, Vue.JS, AWS)
Posts
Q&A
๊ฐ์ ๋ฃ๋ค๊ฐ ๋์ปค ์ด๋ฏธ์ง ์์ฑ์ ๊ฐ๊ฐ๋ ๊ฐ๋ฅํ๋ ๊ทธ๋ ๊ฒ ์ฌ์ฉํ๋๋ฐ๊ฐ ๋ง์์ง ๋ชจ๋ฅด๊ฒ ๋ค๋ผ๋ ๋ง์ ๋ฃ๊ณ ๋จ๊น๋๋ค
์๋ ํ์ธ์, ํธ๋๋งจ์ ๋๋ค. ์ ํฌ ํ์ฌ์์ ์ด์ํ๋ ์ฃผ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ค์ ์ฃผ๋ก ํ๋์ ์ปจํ ์ด๋๋ก ๊ตฌ์ฑํ๋ ๋ฐฉ์์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.docker-compose๋ฅผ ํตํด ์ฌ๋ฌ ์ปจํ ์ด๋๋ก ๋๋๋ฉด ์ฅ์ ์ด ์๋ ๊ฑด ์๋์ง๋ง, ๊ด๋ฆฌ๊ฐ ๋ณต์กํ๊ณ ์ ์ ์ด ์ฌ๋์์ ์คํ๋ ค ๋จ์ ์ด ๋ ํฌ๋ค๊ณ ์๊ฐํด์. ๊ทธ๋์ ๋ณดํต์ ์๋น์ค๋ณ๋ก Dockerfile์ ์์ฑํด์ ์ด๋ฏธ์ง๋ก ๋ณด๊ดํ๋ ๋ฐฉ์์ ์ ํธํฉ๋๋ค.๋ฌผ๋ก ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ด๋ ํ ์คํธ ํ๊ฒฝ์ ๊ตฌ์ถํ ๋๋ docker-compose๋ฅผ ์ฌ์ฉํ๊ธฐ๋ ํฉ๋๋ค. ๋ค๋ง, ์ด๊ฒ ์ ๋ง์ ๊ตฌ์๋์ ์ธ ์๊ฐ์ผ ์๋ ์์ผ๋, ๋ค๋ฅธ ๋ถ๋ค ์๊ฒฌ๋ ๊ผญ ๋ค์ด๋ณด์๋ ๊ฒ ์ข์ ๊ฒ ๊ฐ์ต๋๋ค. p.s. ํ์ค์ ์ผ๋ก ์ด์ ํ๊ฒฝ์์ DB๋ฅผ ์ปจํ ์ด๋๋ก ๋์ฐ๋ ๊ฒฝ์ฐ๋ ๊ฑฐ์ ์๋ค๊ณ ๋ด ๋๋ค.
- 0
- 2
- 83
Q&A
logout ํ์ login ํ์ด์ง ์ด๋์ ์ด๋์ ์์ผ์ฃผ๋๊ฑด๊ฐ์?
์๋ ํ์ธ์. ํธ๋๋งจ์ ๋๋ค.์ง๋ฌธ์ ๋จ๊ฒจ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.Spring Security Config(SecurityConfig.class)์ ๋ณด์๋ฉด ๋ก๊ทธ์์๊ณผ ๊ด๋ จ๋ ์ค์ ๋ค์ ํ ์ ์์ต๋๋ค.(์ฌ์ง)์ด๋ logoutSuccessUrl๊ฐ์ผ๋ก ๋ก๊ทธ์์ ํ ์ด๋ํ ์ฃผ์๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค.(์ฌ์ง)๋ง์ฝ ๊ฐ์ ์ง์ ํ์ง ์๋๋ค๋ฉด LogoutConfigurer.class ์ ์ง์ ๋ ๊ธฐ๋ณธ๊ฐ /login?logout ์ ์ฌ์ฉํ๊ฒ๋๊ฒ ์ฃ .์ด์๊ฐ์ด ์ํ๋ฆฌํฐ์์๋ ์ธ์ฆ ์ฑ๊ณต/์คํจ, ๋ก๊ทธ์์ ์ฑ๊ณต/์คํจ, ๊ถํ ์์, ๋ก๊ทธ์ธํ์ ๋ฑ ๋ค์ํ ์ปค์คํ ํฌ์ธํธ๋ฅผ ์ ๊ณตํ๊ณ ์๊ธฐ๋๋ฌธ์ ํ ๋ฒ ์ดํด๋ณด์๋ฉด ์ข์๊ฒ ๊ฐ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
- 0
- 1
- 163
Q&A
๋ค์ค ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ ๋
์๋ ํ์ธ์. ํธ๋๋งจ์ ๋๋ค.์ง๋ฌธ ๊ฐ์ฌํฉ๋๋ค.์ฌ๋ฌ๊ฐ์ id๋ฅผ ๊ธฐ๋ฐ์ผ๋ก entity๋ฅผ ์ญ์ ํ ๋ ์ง๋ฌธ์ด์๊ตฐ์๊ทธ๋ฐ๋ฐ ๋ณด๋ด์ฃผ์ ์ฝ๋๋ฅผ ๋ณด์ํ๋.. ์ฐ๋ฆฌ๋ ๋จผ์ ์ด๋ฐ ๋ถ๋ถ์ ์๊ฐ ํด์ผํฉ๋๋ค. ์ฌ๋ฌ๊ฐ๋ฅผ ํ ๋ฒ์ ์กฐํํ๊ณ ํ๋ฒ์ ์ญ์ ํ๋ ๊ฒฝ์ฐํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ๋ก 1๋ถํฐ 100๊น์ง (1,2,3,4,5...100) ์ด 100๊ฐ์ id๋ฅผ ๋์ง๋ฉฐ ์ญ์ ํ๊ธฐ๋ฅผ ํฌ๋งํ๋ค๊ณ ํด๋ด ์๋ค.๊ทธ๋ฐ๋ฐ ๋ง์ฝ id=55์ ๊ฒ์๊ธ์ด ์กด์ฌํ์ง ์๋๋ค๋ฉด ์ด๋จ๊น์?. ํด๋ผ์ด์ธํธ ๋ฒ๊ทธ๋ก ์กด์ฌํ์ง ์๋ id๋ฅผ ์์ฒญ ํ ๊ฑธ์๋ ์๊ณ ์ด๋ฏธ ์ญ์ ๋ ๊ฒ์๊ธ ์ผ์๋ ์๊ฒ ์ฃ . ๊ทธ๋ฐ ์ํฉ์์ 1๋ฒ ์ผ์ด์ค๋ ํด๋ผ์ด์ธํธ์๊ฒ ์ ๋นํ ์ค๋ฅ๋ฅผ ๋ฑ์ด์ค ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. 100๊ฐ์ ๊ฒ์๊ธ์ด ์๋ 99๊ฐ์ ๊ธ์ ์ญ์ ํ ๊ฑด ํด๋ผ์ด์ธํธ๊ฐ ๊ธฐ๋ํ ๋ถ๋ถ์ด ์๋๊ธฐ ๋๋ฌธ์ ์ ๋นํ ์์ธ ์ฒ๋ฆฌ๋ฅผ ํด์ผํ ๊ฒ ๊ฐ์ต๋๋ค.ํ์ง๋ง ํด๋ผ์ด์ธํธ์๊ฒ ๊ทธ๋ฐ ์ค๋ฅ๋ฅผ ์๋ตํ๋๊ฒ ๋ง์๊น์? ์ด๊ฑฐ๋ ์ญ์ ํ๋ ๋์, ๋ชฉ์ ๋ฑ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค.ํด๋ผ์ด์ธํธ ์ ์ฅ์์๋ ์์ฒญ์ "id 100๊ฐ ๋์งํ ๋ ๊ผญ ๋ชจ๋๋ค ์ญ์ ํด์ผ๋๊ณ , 1๊ฐ๋ผ๋ ์คํจํ๋ ์ผ์ด์ค๊ฐ ์์ผ๋ฉด ์๋ผ"๋ฅผ ๊ธฐ๋ํ ์๋ ์๊ณ "id 100๊ฐ ๋์งํ ๋ ์ญ์ ๋๋๊ฐ ๋ง๋๊ฐ ์์์ ํด"์ผ์๋ ์๊ฒ ์ฃ .๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ํด๋ผ์ด์ธํธ ๊ฐ๋ฐ์์ ์ด์ผ๊ธฐ๋ฅผ ๋๋๊ณ ์ญ์ ์ฒ๋ฆฌ์ ๋ชฉ์ ๋ฑ์ ์ฐ์ ์๊ฐํด ๋ณผ ํ์๊ฐ ์์ต๋๋ค."100๊ฐ๊ฐ ๋ชจ๋๋ค ์ญ์ ๋์ด์ผ ํด?, ๋ง์ฝ 1๊ฐ๋ผ๋ ์ญ์ ๊ฐ ์๋๋ฉด ์ด๋ป๊ฒ ํ ๊น? ์ค๋ฅ ๋ฉ์์ง๋ฅผ ์ค๊น? ์๋๋ฉด 99๊ฐ๋ ์ญ์ ๋์ง ์์ 1๊ฐ์ ๋ํด์๋ง ์๋ต๋ฆฌ์คํธ์ ๋ด์ ์ค๊น?" ์ ๊ฐ ๊ฐ์ ํ๋ ์ํฉ์์ id 100๊ฐ ์กฐํ ์ฑ๋ฅ์ ํฌ๊ฒ ์๊ด์์๊ฒ ๊ฐ์ต๋๋ค.๊ทธ๋ฌ๋ฉด ์๋ ๋๋์ ์ฝ๋๋ฅผ ๋ง๋ค ์ ์๊ฒ ์ฃ .public void postAllDelete(List postIds) { List posts = postRepository.findAllById(postIds); var notExistsIds = []; if (postIds.size() != posts.size()) { // ๊ฒ์ฌ ํ ์๋ฌ notExistsIds = ์์ฒญํ์ง๋ง ์กด์ฌํ์ง entity์ id ์ป๊ธฐ(); } postRepository.deleteAll(posts); return notExistsIds } Soft Delete ์ผ์ด์ค์ค์ entity๋ฅผ ์ญ์ ํ์ง ์๊ณ deleted column์ ๋ ๋ค์ soft deleteํ๋ ์ํฉ๋ ์๊ฐ ํด๋ณด์ ์ผํฉ๋๋ค. ๋ฐ์ดํฐ๊ฐ ๋ง์๊ฒฝ์ฐ100๊ฐ ์ ๋๋ ์๊ด ์๊ฒ ์ง๋ง, ์ญ์ ํ๋ ๋ฐ์ดํฐ๊ฐ ์ ๋ง์ ๋ง ๋ง์ ๊ฒฝ์ฐ๋ ๋ฐฐ์น ์ฒ๋ฆฌ๋ฅผ ๊ณ ๋ คํ์ ์ผ ํ ์ ์์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 199
Q&A
querydsl Q class ์ด์
์๋ ํ์ธ์.์ ๊ฐ ํด๊ทผ์ค์ด๋ผ ์์ธํ ํ์ธ์ด ๋ถ๊ฐ๋ฅํ ์ํฉ์ธ๋ฐ์ํน์ ์ ๊ฐ ์ฌ๋ฆฐ ๊ฐ์์๋ฃ(ํ๋ก์ ํธ)๋ฅผ ์ธํ ๋ฆฌ์ ์ด์ ๋ถ๋ฌ์ค์ ๋ ๊ทธ๋ฐ์ง ๋ฌธ์ ํ์ธ ํด์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
- 0
- 2
- 319
Q&A
[vite] http proxy error: /auth/login
์๋ ํ์ธ์. ํธ๋๋งจ์ ๋๋ค.ํด๋น ์ฝ๋๋ฅผ ์ ์ปดํจํฐ์์ ์คํํด๋ณด๋ ์ ์์ ์ผ๋ก ์๋ํ๊ณ ์์ต๋๋ค.์๋ง ์ง๋ฌธ์๋์ ์ปดํจํฐ/๊ฐ๋ฐํ๊ฒฝ์ ๋ฌธ์์ ๋ก ์์ฌ๋๋๋ฐ์ ์ด๋ฏธ ๋ง์ ํด์ฃผ์ จ์ผ๋ https://wiki.mcneel.com/ko/zoo/window7firewall ์ด ๋งํฌ๋๋ก ๋ฐฉํ๋ฒฝ ํ์ฉ์ ํ์ ๊ฒ ๊ฐ์๋ฐ ๊ทธ๋๋ ๋ฐ์ํ๋ ๋ฌธ์ ๋ฉดhttps://open.kakao.com/o/snQ6aljd ์ด์ชฝ ์นด์นด์คํก 1:1 ๋ํ๋ก ์ฐ๋ฝ์ ๋ถํ๋๋ฆฝ๋๋ค.์๊ฒฉ์ผ๋ก ์กฐ์ฌ๋ฅผ ํด๋ด์ผํ ๊ฒ ๊ฐ์ต๋๋ค.๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 618
Q&A
GitHub Collaborator ์ด๋ ๊ด๋ จ
์๋ ํ์ธ์.์ด๋์๋ฃ ํ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 180
Q&A
Window์์ Vue.js ์ค์
์๋ ํ์ธ์. ํธ๋๋งจ์ ๋๋ค.๊ธฐ๋ณธ์ ์ธ ๊ฐ๋ฐ ํ๊ฒฝ์ผ๋ก๋ WSL2, git-bash ์ ๋๋ฅผ ์ค์นํ์๋ฉด ์ข์๊ฒ ๊ฐ์ต๋๋ค.Node.js ๋ฐ npm์ ์ค์น, ์คํ ํ ์ ์๋ ํ๊ฒฝ์ ๋ง๋ค์ด์ฃผ์๋ฉด ์ข์๊ฒ ๊ฐ์ต๋๋ค. React, Vue.js ๋ชจ๋ ๊ธฐ๋ณธ์ ์ธ ์คํ์ ํ๋๋ฐ๊น์ง๋ ํฐ ์ฐจ์ด๊ฐ ์์ต๋๋ค.๋งํ๋ ๋ถ๋ถ์ด ์๊ธฐ๋ฉด ์ง๋ฌธ ์ฃผ์๋ฉด ๋ต๋ณ ๋๋ฆฌ๋๋ก ํ๊ฒ ์ต๋๋ค.
- 0
- 2
- 270
Q&A
(์๋ฃจ์ ์์ )'tsyringe' Error: TypeInfo not known for "ํด๋์ค๋ช "
import {AxiosHttpClient, HttpClient, type ResponseHandlerOptions} from '@/features' @singleton() export class AuthorityApi { constructor(@inject(HttpClient) readonly httpClient: AxiosHttpClient) {} // ์๋ต } AuthorityApi์ ์์ฑ์ ์ฃผ์ ์ด ์๋๋ ์ํ์ ๋๋ค.๋๋ฌธ์ ์ธ๋ถ์์ container.resolve(AuthorityApi)๊ฐ ์๋จนํ๋ ์ํฉ์ ๋๋ค.์ ์ฝ๋์ ๊ฐ์ด AxiosHttpClient๋ฅผ ์ง์ ์ง์ ํด์ ํด๊ฒฐํ ์ ์์ต๋๋ค.ํน์ tsyringe ์์ ๋ฌธ์์ ๊ฐ์ด interface๋ฅผ ์ด์ฉํด์ ์ฃผ์ ํ ์๋ ์๊ธดํฉ๋๋ค.๊ด๋ จ๋งํฌ: https://github.com/microsoft/tsyringe?tab=readme-ov-file#example-with-interfaces
- 0
- 2
- 637
Q&A
collaboator๋ก ์ด๋๋ฐ์ ์ ์์๊น์??
์, ๋ต๋ณ์ ์๋จ๊ฒผ๊ตฐ์.์ด๋์๋ฃ ํ์ต๋๋ค.
- 0
- 2
- 244
Q&A
์น์ 9 ํ๋ก ํธ์ ์ฝ๋๋ฅผ ๋ณด๊ณ ์ถ์ต๋๋ค,,,
์๋ ํ์ธ์.ํธ๋๋งจ์ ๋๋ค. ์ค๋ ์คํ ๋๋ ์ ๋ ์๊ฐ์์๋ฃ๋ก ์ ๋ก๋ ๋ ์์ ์ ๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
- 0
- 1
- 395