๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

IT ๊ณต๋ถ€91

(ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค) n^2 ๋ฐฐ์—ด ์ž๋ฅด๊ธฐ - ๋ฌธ์ œ ํ’€์ด ๋ฐ ํšŒ๊ณ  1๏ธโƒฃ ๋ฌธ์ œhttps://school.programmers.co.kr/learn/courses/30/lessons/87390 ํ”„๋กœ๊ทธ๋ž˜๋จธ์ŠคSW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„programmers.co.kr 2๏ธโƒฃ ํ’€์ดimport java.lang.Math;class Solution { public int[] solution(int n, long left, long right) { int len = (int)(right - left + 1); int[] answer = new int[len]; for(int i = 0; i 3๏ธโƒฃ ํšŒ๊ณ ์ฒ˜์Œ์—๋Š” row ์™€ column์„ ์„ ์–ธํ•œ๋’ค. .. 2025. 4. 25.
H-Index ๊ตฌํ•˜๊ธฐ ๋ฌธ์ œ 1๏ธโƒฃ ๋ฌธ์ œhttps://school.programmers.co.kr/learn/courses/30/lessons/42747?language=java ํ”„๋กœ๊ทธ๋ž˜๋จธ์ŠคSW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„programmers.co.kr 2๏ธโƒฃ ํ’€์ดimport java.util.*;class Solution { public int solution(int[] citations) { int n = citations.length; // ๋ฐฐ์—ด ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ Arrays.sort(citations); // ์ž‘์€ ๋…ผ๋ฌธ์ธ์šฉ์ˆ˜ ๋ถ€ํ„ฐ ๊ฒ€์‚ฌ for.. 2025. 4. 23.
์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ๋ฅผ ์ด์šฉํ•œ ์—ฐ์† ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ํ•ฉ ๊ฐœ์ˆ˜ ๊ตฌํ•˜๊ธฐ 1๏ธโƒฃ ๋ฌธ์ œ์—ฐ์† ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ํ•ฉ ๊ฐœ์ˆ˜ ๊ตฌํ•˜๊ธฐ ๋ฌธ์ œ https://school.programmers.co.kr/learn/courses/30/lessons/131701 ํ”„๋กœ๊ทธ๋ž˜๋จธ์ŠคSW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„programmers.co.kr 2๏ธโƒฃ ํ’€์ดimport java.util.*;class Solution { public int solution(int[] elements) { Set set = new HashSet(); int n = elements.length; for(int i = n; i > 0; i--){ .. 2025. 4. 22.
Feign Client ์—์„œ ์‘๋‹ต ๋ฐ›์„ ๋•Œ Jackson ์—ญ์ง๋ ฌํ™” ์ด์Šˆ โœ… ๋ฌธ์ œ ์ƒํ™ฉ record ๊ธฐ๋ฐ˜ ํด๋ž˜์Šค์—์„œ ํ•„๋“œ๋ช…์ด ๋‹ค๋ฅธ ์ด์Šˆ๊ฐ€ ์ƒ๊ฒจ์„œ Feign Client ์‘๋‹ต ํŒŒ์‹ฑ์ด ์‹คํŒจํ•˜๋Š” ์ด์Šˆ๊ฐ€ ์ƒ๊น€public record OrderCreateResponse( UUID orderId, // feign client์—์„œ๋Š” id ๋ผ๋Š” ํ•„๋“œ๋ช…์œผ๋กœ ์‘๋‹ตํ•˜๊ณ  ์žˆ์Œ UUID productId, Long userId, ...) {} โœ… ์›์ธrecord๋Š” ๋ชจ๋“  ํ•„๋“œ๊ฐ€ final์ด๊ณ  ์ƒ์„ฑ์ž๋ฅผ ์•”์‹œ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ๋•Œ๋ฌธ์—, Jackson์ด ์ƒ์„ฑ์ž ํŒŒ๋ผ๋ฏธํ„ฐ ์ด๋ฆ„์„ ์•Œ ์ˆ˜ ์—†์–ด ๋งคํ•‘ ์‹คํŒจํ•จ โœ… ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ƒ์„ฑ์ž์— @JsonProperty ์–ด๋…ธํ…Œ์ด์…˜์„ ๋‹ฌ์•„์„œ ์ง์ ‘ ๋ช…์‹œ๋ฅผ ํ•ด์ฃผ๋ฉด ๋จpublic record OrderCreateResponse( @JsonProperty("id") .. 2025. 4. 21.
Feign Client์—์„œ ์ปค์Šคํ…€ ์–ด๋…ธํ…Œ์ด์…˜ ์‚ฌ์šฉ์‹œ ์ฃผ์˜์‚ฌํ•ญ โœ”๏ธ ๋ฌธ์ œ์ƒํ™ฉFeign Client ์ธํ„ฐํŽ˜์ด์Šค ๋ฉ”์„œ๋“œ์— @RequestHeader("X-User-Id) ๋Œ€์‹  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ปค์Šคํ…€ ์–ด๋…ธํ…Œ์ด์…˜์„ ์ƒ์„ฑํ•˜์—ฌ,@CurrentUserId ๋ฅผ ํ†ตํ•ด ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์•„๋ž˜์™€ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ๋นŒ๋“œ๊ฐ€ ์‹คํŒจํ–ˆ๋‹ค. Method has too many Body parameters ์•„๋ž˜ ์ฝ”๋“œ์™€ ๊ฐ™์ด ์ปค์Šคํ…€ ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•ด์„œ ํ—ค๋”๋ฅผ ์ „๋‹ฌํ•˜๊ฒŒ ๋˜๋ฉด, ์ปค์Šคํ…€ ์–ด๋…ธํ…Œ์ด์…˜์ด ๋ฌด์‹œ๋˜๋ฉด์„œ userId๊นŒ์ง€ @RequestBody๋กœ ์ธ์‹์ด ๋˜์–ด ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด ๊ฒƒ์ด๋‹ค. (Body ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ 2๊ฐœ ์ด์ƒ์ด ๋จ)@FeignClient(name = "order-service")public interface OrderFeignClient { @PostMapping OrderCr.. 2025. 4. 21.
๋‚™๊ด€์ ๋ฝ ์‚ฌ์šฉ์‹œ ๋ฒ„์ „์„ ์ดˆ๊ธฐํ™” ํ•˜์ง€ ์•Š์•„ ์ƒ๊ธด ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ… โœ”๏ธ ๋ฌธ์ œ ์ƒํ™ฉ Hibernate์—์„œ @Version ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ํ•ด๋Œ• ํ•„๋“œ๊ฐ€ null ์ด๋ฉด ๋‹ค์Œ ์ปค๋ฐ‹ ์‹œ์ ์— NPE๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. โœ”๏ธ ์›์ธ Hibernate๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ version + 1์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ํ˜„์žฌ ๋ฒ„์ „ ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๋Š”๋ฐ,@Version ํ•„๋“œ๊ฐ€ null ์ด๋ฉด ์ด๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†์–ด ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. โœ”๏ธ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์ƒ์„ฑ์‹œ version ๊ฐ’์„ ์ดˆ๊ธฐํ™”ํ•ด์ค€๋‹ค. ...@Versionprivate Integer version;private Limited(UUID limitedProductId, LocalDateTime startDate, LocalDateTime endDate, LimitedStatus status) { LimitedDateValidator.validateDat.. 2025. 4. 21.