Today I Learned/2022

CLOB ๋ฌธ์ž ๋Œ€ํ˜• ๋ฐ์ดํ„ฐ ๋ณด๊ด€์šฉ ์˜ค๋ผํด์€ CLOB VARCHAR2 ์‚ฌ์ด์— ์•”์‹œ์  ๋ณ€ํ™˜์„ ์ˆ˜ํ–‰ํ•ด์ค€๋‹ค. ์ตœ๋Œ€ 4GB๊นŒ์ง€ ์ €์žฅ ๊ฐ€๋Šฅ ๋”ฐ๋กœ SIZE ์ง€์ • ์•ˆํ•˜๊ณ  ์‚ฌ์šฉ CLOB ์ปฌ๋Ÿผ Select ์‹œ ์ฃผ์˜ ์‚ฌํ•ญ CLOB ์ปฌ๋Ÿผ์€ ์ตœ๋Œ€ 4GB์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, row ์ˆ˜๊ฐ€ ๋งŽ์•„์ง„๋‹ค๋ฉด ์„ฑ๋Šฅ๋ฉด์—์„œ ํฐ ๋ถ€๋‹ด์ด ๋  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— CLOB ์ปฌ๋Ÿผ ์กฐํšŒ ์‹œ ์ „์ฒด ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋‹Œ ์ผ๋ถ€ ๋ฐ์ดํ„ฐ๋งŒ ๋ณด์—ฌ์ง€๊ฒŒ ๋œ๋‹ค. (๋ฐ์ดํ„ฐ๊ฐ€ ์ž˜๋ชป ๋“ค์–ด ๊ฐ„๊ฒŒ ์•„๋‹˜..!) ์ „์ฒด ๊ฐ’์„ ์กฐํšŒํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด dbms_lob.substr(์ปฌ๋Ÿผ๋ช…, dbms_lob.getlength(์ปฌ๋Ÿผ๋ช…)) ์„ ์ด์šฉํ•ด์„œ ์กฐํšŒํ•œ๋‹ค. ๋‹จ, Orange ํˆด์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค๊ณ  ํ•˜๋‹ˆ ์ฐธ๊ณ ! [Tools] - [Orange Options…] ..
@UtilityClass UtilityClass๋ฅผ ์ƒ์„ฑํ•  ๋•Œ, ์ดํŽ™ํ‹ฐ๋ธŒ ์ž๋ฐ”์—์„œ ์œ ํ‹ธ ํด๋ž˜์Šค์— ๋Œ€ํ•œ ์–ธ๊ธ‰์ด ์žˆ์—ˆ๋˜ ๊ธฐ์–ต์ด ๋‚˜์„œ ๊ตฌ๊ธ€๋ง ํ•˜๋‹ค๊ฐ€ ์ฐพ์€ ์–ด๋…ธํ…Œ์ด์…˜ boilerplate๋กœ ๊ฐ„์ฃผํ•  ๋งŒํผ ์ผ๋ฐ˜์ ์ธ์ง€์— ๋Œ€ํ•œ ๋…ผ์Ÿ์ด ์žˆ๋Š” ํ˜•์‹์ด๋ผ ์‹คํ—˜ ๊ธฐ๋Šฅ์œผ๋กœ ๋„์ž…๋˜์—ˆ๋‹ค๊ณ  ํ•จ (lombok v1.16.2) boilerplate : ์ตœ์†Œํ•œ์˜ ๋ณ€๊ฒฝ์œผ๋กœ ์—ฌ๋Ÿฌ๊ณณ์—์„œ ์žฌ์‚ฌ์šฉ๋˜๋ฉฐ, ๋ฐ˜๋ณต์ ์œผ๋กœ ๋น„์Šทํ•œ ํ˜•ํƒœ๋ฅผ ๋„๋Š” ์ฝ”๋“œ๋ฅผ ๋งํ•œ๋‹ค. ๊ธฐ๋Šฅ private ์ƒ์„ฑ์ž๊ฐ€ ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜์–ด ์ธ์Šคํ„ด์Šคํ™” ํ•  ์ˆ˜ ์—†๊ฒŒ ๋ง‰์Œ final class ์œผ๋กœ ์ง€์ •๋˜์–ด ์ƒ์† ๋ฐ›์„ ์ˆ˜ ์—†๊ฒŒ ๋จ ๋‚ด๋ถ€์˜ ๋ชจ๋“  ๋ฉค๋ฒ„์™€ ๋ฉ”์„œ๋“œ๋Š” static ์ฒ˜๋ฆฌ ๋จ. (inner class static ์ฒ˜๋ฆฌ ๋จ) // With Lombok import lombok.experimental..
๋‹น์›” 1์ผ ๋ฐ ๋ง์ผ ๊ตฌํ•˜๊ธฐ 1์ผ : firstDayOfMonth() ๋ง์ผ : lastDayOfMonth() 00:00:00 ๋ฐ 23:59:59๋Š” LocalTime.MIN ๋ฐ LocalTime.MAX ๋ฅผ ์ด์šฉํ•œ๋‹ค import static java.time.temporal.TemporalAdjusters.* LocalDateTime today = LocalDateTime.now(); LocalDateTime starttime = today.with(firstDayOfMonth()).with(LocalTime.MIN); // ๋‹น์›” 1์ผ 00:00:00 LocalDateTime endtime = today.with(lastDayOfMonth()).with(LocalTime.MAX); // ๋‹น์›” ๋งˆ์ง€๋ง‰๋‚  23:5..
Spring REST Docs ๊ฐœํ–‰ ๋ฐ”๋กœ ๊ฐœํ–‰ ๋ฌธ์ž๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์•ˆ๋˜๊ณ , ๋ฌธ์ž์—ด์•ˆ์— + ๋ช…์‹œ ํ›„ \n ์ž…๋ ฅ // ๊ฐœํ–‰์ „ ๋ฌธ์ž์—ด์— ํ•œ์นธ(์ŠคํŽ˜์ด์Šค) ๋„๊ณ  + ์ž…๋ ฅ // ๊ทธ๋ฆฌ๊ณ  ๊ฐœํ–‰ ๋ฌธ์ž๋ฅผ ๋”ฐ๋กœ "\n" parameterWithName("name").description("This is the description +" + "\n" + "in the table."), // ์•ˆ๋˜๋Š” ๋ฒ„์ „ parameterWithName("name").description("This is the description \n in the table."), ๐Ÿ‘ Reference ๋”๋ณด๊ธฐ https://stackoverflow.com/questions/66405730/when-using-spring-rest-docs-how-do-i-make..
MyBatis parameterType, resultType์— Static Inner Class ์‚ฌ์šฉ OuterClass$InnerClass๋กœ ์ ‘๊ทผ $๋Š” ๋ณ€์ˆ˜๋ฅผ ์˜๋ฏธํ•˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ, Java์˜ ํŠน์„ฑ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. Java์—์„œ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•  ๋•Œ์—๋Š” Class์•ˆ์—์„œ InnerClass์— ์ ‘๊ทผํ•  ๋•Œ, ๋ชจ๋‘ ๊ตฌ๋‘์ ์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ, ํŠน์ • ํด๋ž˜์Šค๋ฅผ ์ฝ์–ด์™€์•ผ ํ•˜๋Š” ํด๋ž˜์Šค๋กœ๋”์—์„œ๋Š” Package namespace๋Š” ๊ตฌ๋‘์ (.)์œผ๋กœ ๊ตฌ๋ถ„ํ•˜๊ณ , ํด๋ž˜์Šค์™€ InnerClass์˜ namespace๋Š” $๋กœ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ํ—ˆ๋Œ€์˜(Daeyoung Heo) 2016.4.22 00:42 ๐Ÿ‘ Reference ๋”๋ณด๊ธฐ https://hashcode.co.kr/questions/1753/mybatis%EC%97%90%EC%84%9C-inner-cla..
YURI๐Ÿ•๐Ÿ“๐Ÿถ
'Today I Learned/2022' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก