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

Java18

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] N๊ฐœ์˜ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜(Java) https://school.programmers.co.kr/learn/courses/30/lessons/12953 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr class Solution { public int solution(int[] arr) { int answer = 0; if (arr.length == 1){ return arr[0]; } int lcm = arr[0]; for (int i = 1; i < arr.length; i++){ lcm = getLeastCommonMultiple(lcm, arr[i]); } return lcm; } // .. 2023. 12. 1.
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํ›„๋ณดํ‚ค (Java) https://school.programmers.co.kr/learn/courses/30/lessons/42890 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr import java.util.*; class Solution { public int solution(String[][] relation) { int answer = 0; int rowCount = relation.length; int columnCount = relation[0].length; // ์ธ๋ฑ์Šค ๋ฐฐ์—ด ์ดˆ๊ธฐํ™” List arr = new ArrayList(); for (int i = 0;.. 2023. 12. 1.
[JPA] ์ปค์„œ ๊ธฐ๋ฐ˜ pagenation ๊ตฌํ˜„ํ•˜๊ธฐ ์ปค์„œ ๊ธฐ๋ฐ˜ ํŽ˜์ด์ง€๋„ค์ด์…˜ Cursor ๊ฐœ๋…์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ์‘๋‹ตํ•ด์ค€ ๋งˆ์ง€๋ง‰ ๋ฐ์ดํ„ฐ ๊ธฐ์ค€์œผ๋กœ ๋‹ค์Œ n๊ฐœ ์š”์ฒญ/์‘๋‹ต offset ๊ธฐ๋ฐ˜ ์ฟผ๋ฆฌ๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค๋ฉด SELECT * FROM items WHERE ์กฐ๊ฑด๋ฌธ ORDER BY id DESC OFFSET ํŽ˜์ด์ง€๋ฒˆํ˜ธ LIMIT ํŽ˜์ด์ง€์‚ฌ์ด์ฆˆ cursor ๊ธฐ๋ฐ˜ ์ฟผ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. SELECT * FROM items WHERE ์กฐ๊ฑด๋ฌธ AND id < ๋งˆ์ง€๋ง‰์กฐํšŒ_id ORDER BY id DESC LIMIT ํŽ˜์ด์ง€์‚ฌ์ด์ฆˆ ์ง์ „ ์กฐํšŒ ๊ฒฐ๊ณผ์˜ ๋งˆ์ง€๋ง‰ ๋ฐ์ดํ„ฐ๊ฐ€ ์ถ”๊ฐ€๋กœ ๋“ค์–ด๊ฐ€๋Š”๋ฐ SQL ํ‚ค์›Œ๋“œ๊ฐ€ ์•„๋‹Œ ๊ณ ์ •๋œ ์กฐ๊ฑด๋ฌธ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ๋•Œ๋ฌธ์— ์ •์  ์ฟผ๋ฆฌ๋กœ์„œ์˜ ํ•œ๊ณ„๊ฐ€ ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค. (๋ฌผ๋ก  ๋™์  ์ฟผ๋ฆฌ์ธ QueryDSL์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.) controller /** * ๊ฒŒ์‹œ๋ฌผ page .. 2023. 3. 1.
[JPA] ์˜คํ”„์…‹ ๊ธฐ๋ฐ˜ Pagenation ๊ตฌํ˜„ํ•˜๊ธฐ Spring Data JPA์—์„œ๋Š” Pagination์„ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋„๋ก Pageable ๊ฐ์ฒด๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ์˜คํ”„์…‹ ๊ธฐ๋ฐ˜ Pagenation DB์˜ offset์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ‘ํŽ˜์ด์ง€’ ๋‹จ์œ„๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์š”์ฒญ/์‘๋‹ต ํ•œ๋‹ค. controller /** * ๊ฒŒ์‹œ๋ฌผ page ์กฐํšŒ * * @param pageable * @return Page */ @GetMapping(produces = APPLICATION_JSON_VALUE) public ApiResponse getPosts(@PageableDefault(sort = "id", direction = Sort.Direction.DESC) Pageable pageable) { Page pages = postService.findAll(pageable); ret.. 2023. 3. 1.
[๋””์ž์ธ ํŒจํ„ด] ํผ์‚ฌ๋“œ ํŒจํ„ด ํผ์‚ฌ๋“œ ํŒจํ„ด (Facade Pattern) ํผ์‚ฌ๋“œ ํŒจํ„ด์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ, ํ”„๋ ˆ์ž„์›Œํฌ์— ๋Œ€ํ•œ ๋˜๋Š” ๋‹ค๋ฅธ ํด๋ž˜์Šค๋“ค์˜ ๋ณต์žกํ•œ ์ง‘ํ•ฉ์— ๋Œ€ํ•œ ๋‹จ์ˆœํ™”๋œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ตฌ์กฐ์  ๋””์ž์ธ ํŒจํ„ด์ž…๋‹ˆ๋‹ค. Facade๋Š” "๊ฑด๋ฌผ์˜ ์ •๋ฉด"์„ ์˜๋ฏธํ•˜๋Š” ๋‹จ์–ด๋กœ ์–ด๋–ค ์†Œํ”„ํŠธ์›จ์–ด์˜ ๋‹ค๋ฅธ ์ปค๋‹ค๋ž€ ์ฝ”๋“œ ๋ถ€๋ถ„์— ๋Œ€ํ•˜์—ฌ ๊ฐ„๋žตํ™”๋œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•ด์ฃผ๋Š” ๋””์ž์ธ ํŒจํ„ด์„ ํ•œ๋‹ค. ํผ์‚ฌ๋“œ ๊ฐ์ฒด๋Š” ๋ณต์žกํ•œ ์†Œํ”„ํŠธ์›จ์–ด ๋ฐ”๊นฅ์ชฝ์˜ ์ฝ”๋“œ๊ฐ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์•ˆ์ชฝ ์ฝ”๋“œ์— ์˜์กดํ•˜๋Š” ์ผ์„ ๊ฐ์†Œ์‹œ์ผœ ์ฃผ๊ณ , ๋ณต์žกํ•œ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๊ฐ„๋‹จํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•ด์ค€๋‹ค. ์žฅ์  : ๋ณต์žกํ•œ ํ•˜์œ„ ์‹œ์Šคํ…œ์—์„œ ์ฝ”๋“œ๋ฅผ ๋ณ„๋„๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ํŠน์ • ๊ธฐ๋Šฅ์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค. : ํ•˜๋‚˜์˜ ํผ์‚ฌ๋“œ๋ฅผ ๊ด€๋ จ ์—†๋Š” ๊ธฐ๋Šฅ๋“ค๋กœ ์˜ค์—ผ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์–ด ํ•ด๋‹น ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์‘์ง‘๋„๊ฐ€ ๋†’๋‹ค.. 2023. 2. 18.
[Java] List ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๋ฆฌ๋ทฐ ๋ฐ›์•˜๋‹ค๐Ÿคฃ https://jihyehwang09.github.io/2020/04/13/java-list-null-check/ List.size() == 0 ๋ณด๋‹ค๋Š” List.isEmpty() ํ”ผ๋“œ๋ฐฑ ๋ฐ›์€ ๊ฒƒ๊ณผ ๊ฐ™์ด isEmpty๊ฐ€ ๊ฐ€๋…์„ฑ๋ฉด์— ์ง๊ด€์ ์ด๋‹ค. ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, list์˜ ์‚ฌ์ด์ฆˆ๊ฐ€ 0์ด ์•„๋‹๊ฒฝ์šฐ size() ๋ฉ”์†Œ๋“œ๋Š” O(n)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง€๊ธฐ ๋•Œ๋ฌธ์— isEmpty() ๋ณด๋‹ค ๋น„์šฉ์ด ๋งŽ์ด ๋“ ๋‹ค. (isEmpty()๋Š” O(1)์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„) List null ์ฒดํฌ Java Spring ์‚ฌ์šฉ์‹œ์—๋Š” ์•„ํŒŒ์น˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ CollectionUtils.isEmpty()๋ฅผ ์‚ฌ์šฉํ•˜์ž. import org.springframework.util.CollectionUtils; public class Main { pu.. 2022. 12. 1.