๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ60

IntelliJ ์ปคํ”ผ์ž” ์•„์ด์ฝ˜ ํ•ด๊ฒฐ (ํ”„๋กœ์ ํŠธ ์‹คํ–‰ ์•ˆ๋จ) ๋งฅ๋ถ์œผ๋กœ ๋ฐ”๊พธ๊ณ  ๋‚˜์„œ.. ๋‹ค์‹œ ์ธํ…”๋ฆฌ์ œ์ด ์œ ๋ฃŒ๋ฒ„์ „ ๋‹ค์šด๋กœ๋“œํ•ด์„œ ์“ฐ๋ ค๊ณ  ํ•˜๋Š”๋ฐ๋˜ ๋“ฑ์žฅํ•œ ์ปคํ”ผ์ž” ์•„์ด์ฝ˜ JDK 24 ์„ค์น˜ํ–‡๊ณ ..๋ญ๊ฐ€ ๋ฌธ์ œ์ธ๊ฐ€ ์‹ถ์–ด์„œ ์ฐพ์•„๋ณธ ๊ฒฐ๊ณผ src ์šฐํด๋ฆญ -> [Mark Directory as] -> [Source Root] ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค ๋๋‹ค~ 2025. 9. 10.
๋งฅ๋ถ ๊นƒํ—ˆ๋ธŒ ์„ค์น˜ํ•˜๊ธฐ (Homebrew ์„ค์น˜๋ถ€ํ„ฐ) ๋จผ์ € homebrew ์„ค์น˜ํ•˜๊ธฐ 1. https://git-scm.com/downloads/mac ์ ‘์† 2. homebrew ํด๋ฆญ 3. ์•„๋ž˜ ๋ช…๋ น์–ด ๋ณต์‚ฌ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" **homebrew๋ฅผ ์“ฐ๋ฉด MacOS์—์„œ ์ด๊ฒƒ์ €๊ฒƒ ์‰ฝ๊ฒŒ ์„ค์น˜ ๊ฐ€๋Šฅํ•จ 4 -1. ๋งฅ๋ถ ํ„ฐ๋ฏธ๋„ ์—ด๊ธฐ (F4 ํ‚ค ๋ˆ„๋ฅด๋ฉด ๋œจ๋Š” ์ฐฝ์— terminal ์ž…๋ ฅ, ์—ด๊ธฐ) 4-2. ํ„ฐ๋ฏธ๋„์— ์•„๊นŒ ๋ณต์‚ฌํ•œ ๋ช…๋ น์–ด ์ž…๋ ฅ ๋ช…๋ น์–ด ์ž…๋ ฅํ•˜๊ณ  password ์ž…๋ ฅํ•˜๋ผ๊ณ  ๋œจ๋Š”๋ฐ ๋งฅ ๋น„๋ฒˆ ์น˜๋ฉด ๋ฉ๋‹ˆ๋‹ค 5. ์„ค์น˜ ์ž˜ ๋๋Š”์ง€ ์•„๋ž˜ ๋ช…๋ น์–ด ์ณ์„œ ํ™•์ธbrew help ์ด๋ ‡๊ฒŒ ๋œจ๋ฉด ์„ค์น˜ ์ž˜ ๋œ๊ฒ๋‹ˆ๋‹ค ์ด์ œ G.. 2025. 9. 10.
[๋ฐฑ์ค€, 11286๋ฒˆ] ์ ˆ๋Œ“๊ฐ’ ํž™ ๊ตฌํ˜„ํ•˜๊ธฐ (JAVA) ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ์•Œ์•„์•ผ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ. ์ž๋ฃŒ๊ตฌ์กฐ ์˜ค๋žœ๋งŒ์— ๋ณด๋‹ค๋ณด๋‹ˆ๊นŒ ๊นŒ๋จน์–ด์„œ ์šฐ์„ ์ˆœ์œ„ ํ ์žฌํ™œ์น˜๋ฃŒํ•˜๋Š”๋ฐ ์‹œ๊ฐ„์ด ์ข€ ๊ฑธ๋ ธ๋‹ค....์–ด๋–ค์‹์œผ๋กœ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ค„์ง€ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•(?) ํ•œ ๋‹ค์Œ for๋ฌธ ๋Œ๋ฉด์„œ ์กฐ๊ฑด์— ๋งž๊ฒŒ์ถœ๋ ฅํ• ๊ฑด ํ•˜๊ณ , ๋„ฃ์„๊ฑด ๋„ฃ๊ณ ~~public class ์ ˆ๋Œ“๊ฐ’ํž™ { public static void main(String[] args) throws IOException { BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(bf.readLine()); // ์šฐ์„ ์ˆœ์œ„ ํ ์ •๋ ฌ ๊ธฐ์ค€ PriorityQueue myQueue .. 2025. 7. 18.
[Java] StringBuffer๊ณผ BufferedWriter์˜ ์ฐจ์ด์  ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํ•˜๋‹ค๋ณด๋‹ˆ๊นŒ ์ฝ˜์†”์— ์ž…์ถœ๋ ฅํ•˜๋Š” ์žฅ์น˜๋“ค์— ๋Œ€ํ•ด์„œ ์ƒˆ์‚ผ ๋งŽ์ด ๊นŒ๋จน๊ณ  ์žˆ์—ˆ๋‹ค๋Š”๊ฑธ ๋А๋‚Œ... ํŠนํžˆ ์ž…๋ ฅ๋ฐ›์„ ๋•Œ BufferedReader + StringTokenizer ์กฐํ•ฉ์„ ๋งŽ์ด ์ผ๋Š”๋ฐ,๋งŽ์€ ์–‘์„ ์ถœ๋ ฅํ•ด์•ผํ•  ๋•ŒStringBuffer๋ž‘ BufferedWriter๊ฐ€ ์–ผํ•๋ณด๋ฉด ๋น„์Šทํ•ด๋ณด์—ฌ์„œ์ฐจ์ด์ ์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ•ด๋ด„. 1. StringBufferStringBuffer๋Š” ์ฃผ ๋ชฉ์ ์ด ๋ฌธ์ž์—ด์„ ๋ชจ์œผ๋Š”๊ฒƒ์— ์žˆ์Œ.์–ด๋””์—? ๋ฉ”๋ชจ๋ฆฌ์—.๋ฌธ์ž์—ด์„ ๋ฉ”๋ชจ๋ฆฌ์— ๋ˆ„์ ์‹œํ‚ค๋Š” ๊ฐ์ฒด์ž„.append()ํ•ด์„œ ๋ฌธ์ž์—ด๋“ค์„ ๋ชจ์•„์„œ, ์ถœ๋ ฅ์€ System.out.print()๋กœ ํ•จ. ๋ฌธ์ž์—ด์„ ๋งŽ์ด ์กฐํ•ฉํ•ด์•ผ๋  ๋•Œ ์“ฐ๊ธฐ ์šฉ์ดํ•จ.StringBuffer sb = new StringBuffer();sb.append("Hello").append(" ").a.. 2025. 7. 11.
IntelliJ ์ž๋™์™„์„ฑ ๊ธฐ๋Šฅ ๋„๊ธฐ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ค€๋น„์ค‘์ด๋ผ ์ž๋™์™„์„ฑ ๊ธฐ๋Šฅ์„ ๋ˆˆ๋ฌผ์„ ๋จธ๊ธˆ๊ณ  ๋„๊ธฐ๋กœ ํ–ˆ๋‹ค.. 1. [File - Settings] ํด๋ฆญ( Mac์—์„œ๋Š” IntelliJ IDEA > Preferences ) 2. [Editor - General - Code Completion] ํด๋ฆญ 3. "Show suggestions as you type" ์ฒดํฌ๋ฐ•์Šค ํ•ด์ œํ•˜๊ธฐ 4. [Apply - OK] ํด๋ฆญ ๊ทธ๋Ÿผ ์ด์ œ ์ž๋™์™„์„ฑ ๊ธฐ๋Šฅ ๊บผ์ง‘๋‹ˆ๋‹ค~~ ++์ถ”๊ฐ€๊ทธ๋ž˜๋„ ๋œจ๊ธธ๋ž˜ [Settings - Editor - Inline Completion] ์—์„œ completion suggestionsํ•ญ๋ชฉ๋“ค์—์„œ์“ฐ๊ณ ์žˆ๋Š” ์–ธ์–ด ์ฒดํฌ๋ฐ•์Šค ํ•ด์ œํ•˜๋ฉด๋จ. ๋‚œ ์ž๋ฐ”๊ณต๋ถ€ ์ค‘์ด๋ผ ์ž๋ฐ”๋งŒ ํ•ด์ œํ•จ. ์ด์ œ ์•ˆ๋œธ~!!! ๊ทธ๋ƒฅ ๊ฐœ๋ฐœํ• ๋•Œ๋Š” ์ฐธ ํŽธํ–ˆ๋Š”๋ฐ....์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํ• ๋•Œ๋งŒํผ์€ ๊บผ์•ผํ•˜๋‹ˆ๊นŒ.. 2025. 7. 9.
[Git] ์›๊ฒฉ ์ €์žฅ์†Œ์— ์žˆ๋Š” ํด๋” ์‚ญ์ œํ•˜๊ณ  ๋ฐ˜์˜ํ•˜๊ธฐ ์›๊ฒฉ ์ €์žฅ์†Œ์— ์˜ฌ๋ฆฌ๋ฉด ์•ˆ๋˜๋Š” ํด๋”๊ฐ€ ์˜ฌ๋ผ๊ฐ€์„œ ๋ฐ˜์˜์ด ๋˜์–ด๋ฒ„๋ฆผ.์‚ญ์ œํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ๋Š”ํฌ๊ฒŒ 2๊ฐ€์ง€๊ฐ€ ์žˆ์Œ 1. commit ๋˜๋Œ๋ ค์„œ ๋‹ค์‹œ ๋ฐ˜์˜ํ•˜๊ณ  pushํ•˜๊ธฐ2. ๊ทธ๋ƒฅ ํด๋” ์‚ญ์ œํ•˜๊ณ  pushํ•˜๊ธฐ ๋‚œ 2๋ฒˆ ๋ฐฉ๋ฒ• ์„ ํƒํ–ˆ์Œ. ๋ช…๋ น์–ด๋Š”// ์›๊ฒฉ์ €์žฅ์†Œ์— ์žˆ๋Š” ํด๋”๋งŒ ์ œ๊ฑฐ. ๋กœ์ปฌ์—๋Š” ๋‚จ์Œgit rm -r --cached [ํด๋”์ด๋ฆ„] **์ฃผ์˜์‚ฌํ•ญ๊ฒฝ๋กœ ์ž˜ ์จ์•ผ๋จ. ์‚ญ์ œํ•˜๊ณ , ์ปค๋ฐ‹ํ•˜๊ณ , pushํ•˜๋ฉด์›๊ฒฉ ๋‹ค์‹œ ๊น”๋”ํ•ด์ง 2025. 7. 1.
[JUnit] does not declare any static, non-private, non-final, nested classes annotated with @Configuration ์—๋Ÿฌ ํ•ด๊ฒฐ JUnit ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ๋Œ๋ฆฌ๋‹ค๊ฐ€ does not declare any static, non-private, non-final, nested classes annotated with @Configuration.๋ผ๊ณ  ์—๋Ÿฌ๊ฐ€ ๋‚˜์˜ค๋ฉด์„œ ์‹คํ–‰์ด ์•ˆ๋จ @SpringBootTest ์•„๋ž˜์—@ContextConfiguration(classes = SpringBootApplication.class) ๋ถ™์—ฌ์„œ ํ•ด๊ฒฐํ•จ ๊ธฐ์กด์—๋Š” ๋ณ„๋„๋กœ ์–ด๋–ค ์„ค์ • ํด๋ž˜์Šค๋ฅผ ์“ธ์ง€ ๋ช…์‹œ๋ฅผ ์•ˆํ•ด๋†”์„œ ์Šคํ”„๋ง์ด ์ฐพ์œผ๋ ค๊ณ  ์‹œ๋„ํ•˜๋ ค๋‹ค๊ฐ€ ๋ชป์ฐพ์€๊ฑฐ์ž„. ๊ทผ๋ฐ @ContextConfiguration(classes = BlogApplication.class) ๋ผ๊ณ  ์จ์คŒ์œผ๋กœ์จ์ง์ ‘ ๋ช…์‹œ๋กœ ๋ฎ์–ด์ค€๊ฒƒ. 2025. 5. 28.
[OAuth2] OAuth2 ๋กœ๊ทธ์ธ ํ›„ SuccessHandler ๊ตฌํ˜„ @RequiredArgsConstructor@Componentpublic class OAuth2SuccessHandler extends SimpleUrlAuthenticationSuccessHandler { public static final String REFRESH_TOKEN_COOKIE_NAME = "refresh_token"; public static final Duration REFRESH_TOKEN_DURATION = Duration.ofDays(14); public static final Duration ACCESS_TOKEN_DURATION = Duration.ofDays(1); public static final String REDIRECT_PATH = "/artic.. 2025. 5. 17.
[OAuth2] ๋‚ด๊ฐ€ ๋ณด๋ ค๊ณ  ๋งŒ๋“  OAuth2 ํ๋ฆ„ ์ •๋ฆฌ ์‹œ๊ฐ„ ์ˆœ์„œ๋Œ€๋กœ [1] ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ ํด๋ฆญ -> ์„œ๋ฒ„ ์š”์ฒญ GET /oauth2/authorization/kakao Spring Security๊ฐ€ ํ•„ํ„ฐ ์ฒด์ธ์—์„œ ์ฒ˜๋ฆฌ,OAuth2AuthorizationrequestRedirectorFilter๊ฐ€ ๋™์ž‘ [2] ์„œ๋ฒ„ : OAuth2AuthorizationRequest ๊ฐ์ฒด ์ƒ์„ฑOAuth2AuthorizationRequest authorizationRequest = OAuth2AuthorizationRequest .authorizationCode() .clientId("KAKAO_CLIENT_ID") .authorizationUri("https://kauth.kakao.com/oauth/authorize") .redirectUr.. 2025. 5. 16.
๋ฐ˜์‘ํ˜•