๋ฐ˜์‘ํ˜•

์ „์ฒด ๊ธ€ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ

ํ•ด๋‹น ๊ธ€ 150๊ฑด

Java์—์„œ๋Š” ์ˆซ์žํ˜• ํƒ€์ž…์œผ๋กœ double๊ณผ Double ๋‘ ๊ฐ€์ง€๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.์ฒ˜์Œ ๊ณต๋ถ€ํ•  ๋• ๋˜‘๊ฐ™์•„ ๋ณด์ด์ง€๋งŒ, ์‹ค๋ฌด์—์„œ ์ •๋ง ์ค‘์š”ํ•œ ์ฐจ์ด๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค.์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ด ๋‘˜์˜ ์ฐจ์ด์™€ ์‹ค์ œ๋กœ ์–ธ์ œ ์–ด๋–ค ๊ฑธ ์จ์•ผ ํ•˜๋Š”์ง€ ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๊ฐœ๋…ํ•ญ๋ชฉdoubleDoubleํƒ€์ž…๊ธฐ๋ณธํ˜•(primitive)์ฐธ์กฐํ˜•(wrapper class)null ํ—ˆ์šฉโŒ ๋ถˆ๊ฐ€โœ… ๊ฐ€๋Šฅ๊ธฐ๋ณธ๊ฐ’0.0null์‚ฌ์šฉ ๋ชฉ์ ๋น ๋ฅธ ๊ณ„์‚ฐ, ๋‹จ์ˆœํ•œ ์ˆ˜์น˜ ์ฒ˜๋ฆฌnull์ฒ˜๋ฆฌ, ์ปฌ๋ ‰์…˜/๊ฐ์ฒด ์กฐ์ž‘ ์™œ ๋‘๊ฐ€์ง€๊ฐ€ ์กด์žฌํ• ๊นŒ?Java๋Š” ์„ฑ๋Šฅ์„ ์œ„ํ•ด ์ˆซ์žํ˜•์€ primitive ํƒ€์ž…์œผ๋กœ ์„ค๊ณ„ํ–ˆ์ง€๋งŒ,์ปฌ๋ ‰์…˜(List, Map ๋“ฑ)์— ๋‹ด๊ฑฐ๋‚˜ null ์ƒํƒœ๋ฅผ ํ‘œํ˜„ํ•ด์•ผ ํ•  ๋•Œ๋Š” ๊ฐ์ฒด๋กœ์จ ๋‹ค๋ค„์•ผ ํ•ฉ๋‹ˆ๋‹ค.๊ทธ๋ž˜์„œ ๋“ฑ์žฅํ•œ ๊ฒƒ์ด Wrapper Class, ์ฆ‰ Double ์ž…๋‹ˆ๋‹ค.(int ..

+ (25.10.13) ๋ฒ„์ „์ด ์—…๊ทธ๋ ˆ์ด๋“œ๋œ ์ดํ›„ API ํ˜ธ์ถœ ์ฃผ์†Œ๊ฐ€ ๋ณ€๊ฒฝ๋œ ๊ฒƒ ๊ฐ™๋‹ค.ํ™•์ธํ•ด ๋ณด๋‹ˆ ๊ธฐ์กด APIํ‚ค๋„ ๋ชจ๋‘ ์‚ญ์ œ๋˜์—ˆ๋‹ค.https://ai.google.dev/gemini-api/docs/quickstart?hl=ko Gemini API ๋น ๋ฅธ ์‹œ์ž‘ | Google AI for Developers๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ Gemini API ์‹œ์ž‘ํ•˜๊ธฐai.google.devํ•ด๋‹น ์‚ฌ์ดํŠธ์— ์ ‘์†ํ•˜๋ฉด ์—ฐ๋™ ๋ฐฉ๋ฒ•์ด ์ž์„ธํžˆ ์•ˆ๋‚ด๋˜์–ด์žˆ๋‹ค.์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์ฐธ๊ณ ํ•˜๋ฉด์„œ ์ƒˆ API ์ฃผ์†Œ๋กœ ํ…Œ์ŠคํŠธํ•ด๋ณด๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค. ๋ญ”๊ฐ€ AI์ฑ—๋ด‡์„ ๋งŒ๋“ค์–ด๋ณด๊ณ ์‹ถ์–ด์„œ๊ฐœ์ธ์ ์œผ๋กœ ๋งŒ๋“ค์–ด๋†“์€ ๋‹ค์ด์–ด๋ฆฌ์— ์–ด๋–ค๊ธฐ๋Šฅ์„ ๋„ฃ์–ด๋ณผ๊นŒํ•˜๋‹ค๊ฐ€๋‹จ์–ด์žฅ์— ๋ฒˆ์—ญ๊ธฐ ๊ธฐ๋Šฅ์„ ๋„ฃ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค ์ƒ๊ฐํ•ด์„œ์ œ๋ฏธ๋‚˜์ด๊ฐ€ ๋ฒˆ์—ญํ•ด์ฃผ๋Š” ๋ฒˆ์—ญ๊ธฐ๋ฅผ ์ถ”๊ฐ€ํ•ด๋ณด์•˜๋‹ค. ์›๋ž˜๋Š” GPT์จฉ์„ ์“ฐ๊ณ ์‹ถ์—ˆ์ง€๋งŒ ใ… ใ…  ์œ ๋ฃŒ๋กœ..

๋‹ค์‹œํ•˜๋ ค๋‹ˆ๊นŒ ๊นŒ๋จน์–ด์„œ...๋‹ค์Œ์— ๋˜ ํ•˜๊ฒŒ๋˜๋ฉด ๋ณด๋ฉด์„œ ํ•ด์•ผ๊ฒ ๋‹ค. ์ผ๋‹จ render๋Š” ๊นƒ์ด๋‚˜ ๊นƒ๋žฉ bitbukey? ๊ฐ™์€๊ณณ์— ์†Œ์Šค๊ฐ€ ์˜ฌ๋ ค์„œ ๋ฐฐํฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค.๋‚˜๋Š” ๋ฌด๋‚œํ•˜๊ฒŒ ๊นƒ์„ ์‚ฌ์šฉํ• ๊ฑด๋ฐ์˜ฌ๋ฆฌ๊ธฐ ์ „์— ๋จผ์ € docker๋กœ ์˜ฌ๋ ค์•ผ ํ•˜๊ธฐ๋•Œ๋ฌธ์— jarํŒŒ์ผ๊ณผ dockerํŒŒ์ผ์ด ํ•„์š”ํ•˜๋‹ค. dockerfile์€ ๋ฃจํŠธ๊ฒฝ๋กœ์— Dockerfile ํ•˜๊ณ  ๋งŒ๋“ค์–ด์ฃผ๋ฉด๋˜๋Š”๋ฐFROM eclipse-temurin:17-jdkCOPY build/libs/ํ”„๋กœ์ ํŠธ์ด๋ฆ„-SNAPSHOT.jar app.jarLABEL authors="USER"EXPOSE 8080ENTRYPOINT ["java", "-jar", "app.jar"]๋‚˜๋Š” ์ด๋Ÿฐ์‹์œผ๋กœ ๋งŒ๋“ค์—ˆ๋‹ค.jdk๋ž‘ jar์œ„์น˜๋ž‘ ํฌํŠธ๋ž‘ ์ด๋Ÿฐ๊ฑฐ ์ ์–ด์ฃผ๋ฉด ๋˜๋Š”๊ฑฐ๊ฐ™๋‹ค. ๊ทธ๋‹ค์Œ ๊ผญ ์ € COPY ๋’ค์— ๊ฒฝ๋กœ์—..

# spring boot(gradle) google๋กœ๊ทธ์ธ(์†Œ์…œ ๋กœ๊ทธ์ธ) ์—ฐ๋™ ๋ฐฉ๋ฒ• 1ํƒ„spring boot์—์„œ ๊ตฌ๊ธ€ ์†Œ์…œ ๋กœ๊ทธ์ธ ํ•˜๋Š” ๋ฐฉ๋ฒ•์˜ ๊ธฐ๋ณธ ํ๋ฆ„์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.[๊ตฌ๊ธ€ ๋กœ๊ทธ์ธ ํด๋ฆญ] ↓[๊ตฌ๊ธ€ ๋กœ๊ทธ์ธ → redirect URI๋กœ ํ† ํฐ ๋ฐ˜ํ™˜] ↓[Spring Security๊ฐ€ ํ† ํฐ ๋ฐ›์•„์„œ ์‚ฌ์šฉ์ž ์ •๋ณด ํš๋“] ↓[์ž๋™ ๋กœsomnote.tistory.com # spring boot(gradle) google๋กœ๊ทธ์ธ(์†Œ์…œ ๋กœ๊ทธ์ธ) ์—ฐ๋™ ๋ฐฉ๋ฒ• 2ํƒ„tailwindCSS ๋ฅผ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ํ•ด๋‹น ๊ธ€์„ ๋ณด๋ฉด ๋œ๋‹ค. # spring boot TailwindCSS์™€ ์—ฐ๋™ํ•˜๊ธฐ, ์‚ฌ์šฉ๋ฐฉ๋ฒ•tailwindcss๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์•ž๋‹จ์„ ๊พธ๋ฉฐ๋ณด์ž tailwindcss๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋˜ ๋ณต์žกํ•˜๋‹ค.. ์•ˆ์จ๋ณผ ์‚ฌ๋žŒ๋“ค์€ ๋„˜์–ด๊ฐ€somnote.ti..

์ตœ์ข…๋ชฉํ‘œ๋‚ด PC (Windows or Linux)์— JEUS 7 ์„ค์น˜ → ์›น์•ฑ ๋ฐฐํฌ → ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰์ „์ฒด ์ˆœ์„œ JEUS 7 ์„ค์น˜ ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œJEUS ์„ค์น˜๊ธฐ๋ณธ ๋„๋ฉ”์ธ(domain) ์ƒ์„ฑ๊ด€๋ฆฌ ๋„๊ตฌ๋กœ ์„œ๋ฒ„ ์‹คํ–‰ (๊ด€๋ฆฌ์ฝ˜์†” or CLI)WAR ํŒŒ์ผ ๋ฐฐํฌ (์˜ˆ: Spring Boot WAR)๋ธŒ๋ผ์šฐ์ €๋กœ ์„œ๋น„์Šค ํ™•์ธ์ผ๋‹จ tmaxsoft์— ๋“ค์–ด๊ฐ€ ํšŒ์›๊ฐ€์ž…์„ํ•˜๊ณ  https://www.tmaxsoft.com/kr/download/middleware/JEUS/download?seq=23์—ฌ๊ธฐ ๋“ค์–ด๊ฐ€ jeus7๋ฒ„์ „์„ ๋‹ค์šด๋กœ๋“œํ–ˆ๋‹ค.์ด๋…€์„์œผ๋กœ ๋ฐ›์•˜๋‹ค. ๋‚ฎ์€๋ฒ„์ „์ด๋ผ ์ž๋ฐ” 1.8๋ฒ„์ „๊นŒ์ง€๋งŒ ์ง€์›ํ•˜๋Š”๊ฒƒ ๊ฐ™๋‹ค.์›๋ž˜ 1.7๋ฒ„์ „์ด ๊น”๋ ค์žˆ์–ด์„œ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ 1.7๋ฒ„์ „์œผ๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ๊ณ  ์„ค์น˜ ์ง„ํ–‰ํ–ˆ๋‹ค.์‹คํ–‰ํ•˜๊ธฐ ์ „์— ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰๋ฒ„ํŠผ์„ ํ•ด์•ผํ•˜..

Cloudinary๋ž€?Cloudinary๋Š” ์ด๋ฏธ์ง€๋‚˜ ๋™์˜์ƒ์„ ์‰ฝ๊ฒŒ ์—…๋กœ๋“œํ•˜๊ณ , ์ €์žฅํ•˜๊ณ , ๋ณด์—ฌ์ฃผ๊ณ , ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์„œ๋น„์Šค์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด,“์ด๋ฏธ์ง€์šฉ ํด๋ผ์šฐ๋“œ ์ €์žฅ์†Œ + ์ด๋ฏธ์ง€ ๋ณ€ํ™˜ ์ž๋™ํ™” ๋„๊ตฌ” ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ์„œ๋ฒ„๋‚˜ ํ”„๋ก ํŠธ์—์„œ ์ด๋ฏธ์ง€ ๋ณด๋‚ด๋ฉด ์ €์žฅ๋จ์ž๋™ URL ๋ฐœ๊ธ‰์—…๋กœ๋“œํ•˜๋ฉด ๊ณง๋ฐ”๋กœ ์ด๋ฏธ์ง€ ์ฃผ์†Œ(URL) ๋ฐ˜ํ™˜์ด๋ฏธ์ง€ ์ตœ์ ํ™”์ž๋™ ์••์ถ•, ๋ฆฌ์‚ฌ์ด์ฆˆ, ์ธ๋„ค์ผ ์ƒ์„ฑCDN ์ œ๊ณตCloudinary ์„œ๋ฒ„๊ฐ€ ์ „ ์„ธ๊ณ„์— ํผ์ ธ ์žˆ์–ด์„œ ๋น ๋ฅด๊ฒŒ ๋กœ๋”ฉ๋™์˜์ƒ๋„ ์ง€์›์ด๋ฏธ์ง€๋ž‘ ๊ฑฐ์˜ ๋˜‘๊ฐ™์ด ์ฒ˜๋ฆฌ ๊ฐ€๋ŠฅAmazon์— S3์ฒ˜๋Ÿผ ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค! https://cloudinary.com/ Image and Video Upload, Storage, Optimization and CDNStreamline media management and impro..

์ด๊ฒŒ ์–ด๋–ค ์—๋Ÿฌ๋‚˜๋ฉด์ง€๊ธˆ ํ˜„์žฌ ์„œ๋ฒ„์—์„œ (DB ๊น”๋ ค์ ธ์žˆ๋Š” ์„œ๋ฒ„) ์—์„œ๋Š” scram-sha-256 ์ธ์ฆ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”๋ฐ,์ง€๊ธˆ ์“ฐ๊ณ  ์žˆ๋Š” JDBC ๋“œ๋ผ์ด๋ฒ„๋Š” ๊ทธ๊ฑธ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๋œป์ด๋‹ค. ๊ต‰์žฅํžˆ ์˜›๋‚  ํ”„๋กœ์ ํŠธ์—ฌ์„œ jdbc๋“œ๋ผ์ด๋ฒ„๊ฐ€ scram์„ ์ง€์›ํ•˜์ง€ ์•Š์•˜๋‹ค.๋“œ๋ผ์ด๋ฒ„๋ฅผ ๋ฒ„์ „์—…ํ•˜๋ฉด๋˜์ง€๋งŒ ์ž๋ฐ” ๋ฒ„์ „์ด ๋‚ฎ์•„์„œ ๋‘˜๋‹ค ๋งŒ์กฑํ•˜๊ธฐ ์‰ฝ์ง€ ์•Š์•˜๋‹ค. ๊ทธ๋ž˜์„œ ๋ฐœ๊ฒฌํ•œ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•! ์ผ๋‹จ ์„œ๋ฒ„์— postgres๊ฐ€ ์„ค์น˜๋œ ๊ณณ์œผ๋กœ ์ด๋™ํ•œ๋‹ค. ๋‚˜๊ฐ™์€๊ฒฝ์šฐ D๋“œ๋ผ์ด๋ธŒ์— ๊น”๋ ค์žˆ์—ˆ๋Š”๋ฐ๊ธฐ๋ณธ์ ์œผ๋กœ C๋“œ๋ผ์ด๋ธŒ์— ๊น”๋ฆฐ๋‹ค๊ณ  ํ•œ๋‹ค.C:\Program Files\PostgreSQL\17\data17์€ ๋ฒ„์ „์ด๋ผ ๋‹ค๋ฅด๊ฒŒ ๋– ๋„ ์ƒ๊ด€์—†๋‹ค. ์—ฌ๊ธฐ์„œ pg_hba.conf๋ผ๋Š” ํŒŒ์ผ์„ ์ˆ˜์ •ํ•ด์•ผํ•œ๋‹ค.์ œ์ผ ๋ฐ‘์œผ๋กœ ๋‚ด๋ฆฌ๋ฉด ์ด๋Ÿฐ์‹์œผ๋กœ scram๋ฐฉ์‹์œผ๋กœ ๋˜์–ด์žˆ๋Š”๋ฐ์ด๊ฒƒ์„ ๋ชจ๋‘..

๋ฐ˜์‘ํ˜•