Hamutaro - Hamtaro 4

ETC. 9

[Swagger] Swagger ๋ž€? (๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•, ์‚ฌ์šฉ ์ด์œ )

Swagger๋ž€?Swagger๋Š” REST API ๋ฌธ์„œ๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•˜๊ณ  ์›น ํ™”๋ฉด์—์„œ ์ง์ ‘ API๋ฅผ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋„๊ตฌ์ฝ”๋“œ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฌธ์„œ ์ž๋™ ์ƒ์„ฑํ”„๋ก ํŠธ, ๋ฐฑ์—”๋“œ, QA ๊ฐ„ API ๋ช…์„ธ ๊ณต์œ  ํ‘œ์ค€์š”์ฒญ/์‘๋‹ต ๊ตฌ์กฐ๋ฅผ ๋ˆˆ์œผ๋กœ ํ™•์ธ + ์ง์ ‘ ํ˜ธ์ถœ ๊ฐ€๋ŠฅSwagger = API ๋ช…์„ธ์„œ + ํ…Œ์ŠคํŠธ UI Swagger ์‚ฌ์šฉ ์ด์œ ?๋ฌธ์„œ ๋”ฐ๋กœ ์•ˆ ์จ๋„ ๋จController ์ฝ”๋“œ + ์–ด๋…ธํ…Œ์ด์…˜ -> ๋ฌธ์„œ ์ž๋™ ์ƒ์„ฑNotion, Excel, Wiki ๋”ฐ๋กœ ๊ด€๋ฆฌํ•  ํ•„์š” ๊ฐ์†Œํ”„๋ก ํŠธ์™€ ํ˜‘์—…์ด ์‰ฌ์›€ํ”„๋ก ํŠธ๊ฐ€ Swagger ๋ณด๊ณ  ๋ฐ”๋กœ API ์—ฐ๋™ ๊ฐ€๋Šฅ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ, ์‘๋‹ต ๊ตฌ์กฐ ์˜คํ•ด ์ค„์–ด๋“ฆํ…Œ์ŠคํŠธ ๋„๊ตฌ๋กœ ๋ฐ”๋กœ ์‚ฌ์šฉPostman ์—†์–ด๋„ ๋จ์ธ์ฆ ํ† ํฐ ๋„ฃ๊ณ  ์‹ค์ œ API ํ˜ธ์ถœ ๊ฐ€๋Šฅ Swagger์˜ ๊ธฐ๋ฐ˜ : OpenAPISwagger๋Š” ..

ETC. 2025.11.19

[SAP] ABAP ๊ฐœ๋ฐœ ๊ตฌ์กฐ์— ๋Œ€ํ•ด์„œ

ABAP๋ž€?Advanced Business Application Programming์˜ ์ค„์ž„๋งSAP ์‹œ์Šคํ…œ ์•ˆ์—์„œ ๋™์ž‘ํ•˜๋Š” ์ „์šฉ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด-> ABAP๋Š” SAP ์‹œ์Šคํ…œ ์•ˆ์—์„œ๋งŒ ๋™์ž‘ํ•˜๋Š” ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ์–ธ์–ด๋กœ SAP ๋‚ด๋ถ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๊ณ  ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๊ตฌํ˜„ํ•˜๋Š” ์—ญํ•  ABAP ๊ฐœ๋ฐœ ๊ตฌ์กฐ๊ณ„์ธต์„ค๋ช…์˜ˆ์‹œPresentation LayerSAP GUI, Fiori UI ๋“ฑ ํ™”๋ฉด ์ธํ„ฐํŽ˜์ด์Šคํ™”๋ฉด์—์„œ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ํŠธ๋žœ์žญ์…˜ ์‹คํ–‰Application Layer๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด ์ˆ˜ํ–‰๋˜๋Š” ABAP ํ”„๋กœ๊ทธ๋žจ ๊ณ„์ธตABAP ํ”„๋กœ๊ทธ๋žจ, Function Module, Class ๋“ฑDatabase LayerSAP Dictionary์— ์ •์˜๋œ ํ…Œ์ด๋ธ”MARA(์ž์žฌ๋งˆ์Šคํ„ฐ), EKKO(๊ตฌ๋งค์˜ค๋” ํ—ค๋”) ๋“ฑ ์ฃผ์š” ๊ฐœ๋ฐœ ๊ฐ์ฒด (Object)๊ตฌ๋ถ„..

ETC. 2025.10.28

[SAP] SAP์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž

SAP์˜ ๊ฐœ๋…์ „์„ธ๊ณ„์ ์œผ๋กœ ๊ฐ€์žฅ ๋„๋ฆฌ ์“ฐ์ด๋Š” ERP ์†Œํ”„ํŠธ์›จ์–ด ์ค‘ ํ•˜๋‚˜๊ธฐ์—…์ด ์šด์˜์— ํ•„์š”ํ•œ ์žฌ๋ฌด, ์ธ์‚ฌ, ์ƒ์‚ฐ, ๊ตฌ๋งค ๋“ฑ ๋ชจ๋“  ์—…๋ฌด๋ฅผ ํ•˜๋‚˜์˜ ํ†ตํ•ฉ ์‹œ์Šคํ…œ์—์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ํ”Œ๋žซํผ SAP๊ฐ€ ํ•˜๋Š” ์ผ๊ตฌ๋ถ„์ฃผ์š” ๋ชจ๋“ˆ์„ค๋ช…์žฌ๋ฌด (FI)Financial AccountingํšŒ๊ณ„, ์ž๊ธˆ, ๊ฒฐ์‚ฐ ๋“ฑ ์žฌ๋ฌด ๊ด€๋ จ ๊ด€๋ฆฌ๊ด€๋ฆฌํšŒ๊ณ„ (CO)Controlling์›๊ฐ€ ๊ด€๋ฆฌ, ์˜ˆ์‚ฐ ํ†ต์ œ, ์†์ต ๋ถ„์„์ธ์‚ฌ (HR, HCM)Human Capital Management์ธ์‚ฌ, ๊ธ‰์—ฌ, ๊ทผํƒœ, ์ธ๋ ฅ ๋ฐฐ์น˜๋ฌผ๋ฅ˜ (MM, SD, PP)Material Management / Sales & Distribution / Production Planning์ž์žฌ๊ด€๋ฆฌ, ์˜์—…๊ด€๋ฆฌ, ์ƒ์‚ฐ๊ณ„ํšํ’ˆ์งˆ (QM)Quality Managementํ’ˆ์งˆ ๊ฒ€์‚ฌ ๋ฐ ๊ด€๋ฆฌํ”Œ๋žœํŠธ ์œ ์ง€..

ETC. 2025.10.21

[Jenkins] ํŒŒ์ดํ”„๋ผ์ธ(Pipeline) ๋ฌธ๋ฒ•

ํŒŒ์ดํ”„๋ผ์ธ์˜ ์ข…๋ฅ˜ํ‘œ์ค€์€ Declarative Pipeline๊ตฌ๋ถ„Declarative PipelineScripted Pipeline๋ฌธ๋ฒ•๊ตฌ์กฐํ™”๋œ DSL (์ถ”์ฒœ ๋ฐฉ์‹)Groovy ๊ธฐ๋ฐ˜ ์ž์œ ๋„ ๋†’์Œ๊ฐ€๋…์„ฑ๋†’์Œ๋‚ฎ์Œ์œ ํ˜•์„ ์—ฐํ˜• (Declarative)๋ช…๋ นํ˜• (Imperative)ํŒŒ์ผ ํ˜•์‹JenkinsfileJenkinsfile๋Œ€ํ‘œ ๊ตฌ๋ฌธpipeline { ... }node { ... } Declarative Pipeline ๊ธฐ๋ณธ ๊ตฌ์กฐpipeline { agent any // ์‹คํ–‰ํ•  ๋…ธ๋“œ (any: ๋ชจ๋“  ๋…ธ๋“œ์—์„œ ์‹คํ–‰ ๊ฐ€๋Šฅ) environment { // ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ • JAVA_HOME = '/usr/lib/jvm/java-11' PATH = "${JAVA_HOME}/..

ETC. 2025.10.12

[Svelte] Svelte๋ž€ ๋ฌด์—‡์ธ๊ฐ€

Svelte ๋ž€? ์ปดํŒŒ์ผ๋Ÿฌ ๊ธฐ๋ฐ˜ ํ”„๋ ˆ์ž„์›Œํฌ๋ฆฌ์•กํŠธ๋‚˜ ๋ทฐ๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ๋™์ž‘ํ•˜๋Š” ๋Ÿฐํƒ€์ž„ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ์‹ค์ œ ์‹คํ–‰ ์‹œ์ ์—์„œ Virtual DOM์„ ์ƒ์„ฑํ•จ๊ทธ์— ๋ฐ˜ํ•ด Svelte๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋ฏธ๋ฆฌ ์ตœ์ ํ™”๋œ ๋ฐ”๋‹๋ผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•จ๊ฒฐ๊ณผ์ ์œผ๋กœ Svelte๋Š” ๋ Œ๋”๋ง ์†๋„๊ฐ€ ๋น ๋ฆ„ ๊ตฌ์กฐ์™€ ๋ฌธ๋ฒ• Count: {count}+ ์•ˆ๋…•ํ•˜์„ธ์š”, {name}๋‹˜! ์ƒํƒœ๊ด€๋ฆฌํ”„๋กœ์ ํŠธ ๊ทœ๋ชจ๊ฐ€ ์ปค์งˆ ๊ฒฝ์šฐ Svelte store๋ฅผ ์‚ฌ์šฉ// store.jsimport { writable } from 'svelte/store';export const count = writable(0);{$count} $count += 1}>+ --> $count ๋ฌธ๋ฒ•์œผ๋กœ store์˜ ๊ฐ’์„ ์ž๋™์œผ๋กœ ๊ตฌ๋…/๊ฐฑ์‹  Svelte์˜..

ETC. 2025.08.18

[Server] Redis ์„œ๋ฒ„๋ž€?

Redis ์„œ๋ฒ„๋ž€?Redis๋Š” ํ•˜๋‚˜์˜ ๋…๋ฆฝ์ ์ธ ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋žจRedis ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ํ•˜๋‚˜์˜ Redis ์„œ๋ฒ„ ์ธ์Šคํ„ด์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ์œ„์—์„œ ์‹คํ–‰๋จ6379๋ฒˆ ํฌํŠธ๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ์—ด๊ณ  ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ๋ฐ›์Œ* ์˜ˆ์‹œ[Spring Boot] ←→ [Redis ์„œ๋ฒ„] ←→ [๋ฉ”๋ชจ๋ฆฌ ๋‚ด๋ถ€ ๋ฐ์ดํ„ฐ] Spring Boot๋Š” ํด๋ผ์ด์–ธํŠธ ์—ญํ• Redis ์„œ๋ฒ„๋Š” ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ ์—ญํ• ํด๋ผ์ด์–ธํŠธ๋Š” Redis ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ set, get, del ๊ฐ™์€ ๋ช…๋ น์œผ๋กœ ์กฐ์ž‘ Redis ์„œ๋ฒ„๊ฐ€ ๋”ฐ๋กœ ์žˆ๋Š” ๊ฒฝ์šฐ?๊ฐœ๋ฐœ์šฉ(local) : ๋‚ด PC์—์„œ redis-server๋ฅผ ์‹คํ–‰ํ•ด ์‚ฌ์šฉ์šด์˜์šฉ(production) : AWS EC2, Azure, GCP, ์‚ฌ๋‚ด VM ๋“ฑ ๋ณ„๋„์˜ ์„œ๋ฒ„์— Redis๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์Œ--> ์—ฌ๋Ÿฌ ์›น์„œ๋ฒ„๊ฐ€ ๊ฐ™์€ R..

ETC. 2025.03.29

[Big Query] Google Cloud ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค Big Query

BigQuery๋ž€?Google Cloud Platform(GCP)์—์„œ ์ œ๊ณตํ•˜๋Š” ์™„์ „๊ด€๋ฆฌํ˜• ์„œ๋ฒ„๋ฆฌ์Šค ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์„œ๋ฒ„๋ฅผ ๊ด€๋ฆฌํ•˜๊ฑฐ๋‚˜ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ํ™•์žฅํ•˜์ง€ ์•Š์•„๋„ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ €์žฅํ•˜๊ณ  ๋ถ„์„ํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋น„์Šค์„œ๋ฒ„๋ฆฌ์Šค(Serverless) : ์ธํ”„๋ผ ๊ตฌ์„ฑ, ๋…ธ๋“œ ๊ด€๋ฆฌ, ํ™•์žฅ ๋“ฑ์„ ์ „ํ˜€ ์‹ ๊ฒฝ ์“ธ ํ•„์š” ์—†์ŒSQL ๊ธฐ๋ฐ˜ ๋ถ„์„ : ํ‘œ์ค€ SQL๋กœ ์ˆ˜์‹ญ์–ต ํ–‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ดˆ ๋‹จ์œ„๋กœ ๋ถ„์„ ๊ฐ€๋Šฅ์ž๋™ ํ™•์žฅ : ๋ฐ์ดํ„ฐ ์–‘์ด๋‚˜ ์ฟผ๋ฆฌ๋Ÿ‰์ด ๋Š˜์–ด๋‚˜๋ฉด ์ž๋™์œผ๋กœ ๋ฆฌ์†Œ์Šค ํ• ๋‹น๊ฒฐ์ œ ๋ฐฉ์‹ : ์ฟผ๋ฆฌ ์‹คํ–‰๋Ÿ‰(์Šค์บ”๋œ ๋ฐ์ดํ„ฐ ์šฉ๋Ÿ‰)๊ณผ ์ €์žฅ ์šฉ๋Ÿ‰ ๊ธฐ์ค€์œผ๋กœ ๊ณผ๊ธˆ ๊ตฌ์กฐ ๋ฐ ์ฃผ์š” ๊ตฌ์„ฑ์š”์†ŒProject : GCP ๋ฆฌ์†Œ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ตœ์ƒ์œ„ ๋‹จ์œ„Dataset : ํ…Œ์ด๋ธ”์˜ ๋ฌถ์Œ (์Šคํ‚ค๋งˆ์˜ ๋…ผ๋ฆฌ ๋‹จ์œ„)Table : ์‹ค์ œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜๋Š” ๋‹จ์œ„V..

ETC. 2025.03.09

[Snowflake] ๋ฐ์ดํ„ฐ์›จ์–ดํ•˜์šฐ์Šค Snowflake์˜ ๊ฐœ๋…

Snowflake ๋ž€?ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜์˜ ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค ํ”Œ๋žซํผAWS, Azure, GCP ๋“ฑ ์ฃผ์š” ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์—์„œ ๋™์ž‘ํ•˜๋Š” ์™„์ „ ๊ด€๋ฆฌํ˜• ์„œ๋น„์Šค์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์ธํ”„๋ผ ๊ตฌ์„ฑํ•˜๊ฑฐ๋‚˜ ๊ด€๋ฆฌํ•  ํ•„์š”์—†์Œ Snowflake ํ•ต์‹ฌ ๊ฐœ๋…ํด๋ผ์šฐ๋“œ์— ์ตœ์ ํ™”๋œ ์„ค๊ณ„๋ฅผ ๊ฐ€์ง์ปดํ“จํŒ… ๋ฆฌ์†Œ์Šค์™€ ์Šคํ† ๋ฆฌ์ง€๊ฐ€ ์™„์ „ํžˆ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ์–ด์„œ ํ™•์žฅ์„ฑ๊ณผ ์œ ์—ฐ์„ฑ์ด ๊ทน๋Œ€ํ™”๊ณ„์ธต์—ญํ• ์ฃผ์š” ํŠน์ง•Storage Layer๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์ค‘์•™ ์ €์žฅ, ์ž๋™ ์••์ถ• ๋ฐ ์•”ํ˜ธํ™”Compute Layer์ฟผ๋ฆฌ ์‹คํ–‰ ์—”์ง„๊ฐ€์ƒ ์›จ์–ดํ•˜์šฐ์Šค ํ†ตํ•ด ๋…๋ฆฝ์  ์—ฐ์‚ฐ ์ˆ˜ํ–‰Cloud Services Layer์ œ์–ด/๊ด€๋ฆฌ ๊ณ„์ธต์ธ์ฆ, ์ฟผ๋ฆฌ ์ตœ์ ํ™”, ๋ณด์•ˆ ๊ด€๋ฆฌ ์ˆ˜ํ–‰ Snowflake ์•„ํ‚คํ…์ฒ˜ ๊ตฌ์กฐMulti-Cluster Shared Data Architecture ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘๋™Shared D..

ETC. 2025.02.27

[Jenkins] Jenkins์™€ CI/CD์˜ ๊ฐœ๋…

Jenkins๋ž€? ์˜คํ”ˆ ์†Œ์Šค ์ž๋™ํ™” ์„œ๋ฒ„๋กœ, ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ํ”„๋กœ์ ํŠธ์—์„œ ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ, ๋ฐฐํฌ ๋“ฑ์„ ์ž๋™ํ™”๋‹ค์–‘ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ง€์›ํ•จ๊ฐœ๋ฐœ์ž์™€ ํŒ€์ด ์ฝ”๋“œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋น ๋ฅด๊ณ  ์ง€์†์ ์œผ๋กœ ํ†ตํ•ฉํ•˜๊ณ  ๋นŒ๋“œ์™€ ๋ฐฐํฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ž๋™ํ™”ํ•˜์—ฌ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ์†๋„์™€ ํ’ˆ์งˆ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ Jenkins์˜ ์ฃผ์š” ํŠน์ง• 1. ์˜คํ”ˆ ์†Œ์Šค์™€ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ง€์›์˜คํ”ˆ ์†Œ์Šค์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜๋Š” ์ˆ˜๋งŽ์€ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์กด์žฌํ•˜๋ฉฐ ๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ2. ๋‹ค์–‘ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ์—ฌ๋Ÿฌ๊ฐ€์ง€์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ†ตํ•ด ๊ฑฐ์˜ ๋ชจ๋“  ๊ฐœ๋ฐœ ํˆด๊ณผ ํ†ตํ•ฉ๋  ์ˆ˜ ์žˆ์Œ์†Œ์Šค ์ฝ”๋“œ ๊ด€๋ฆฌ ๋„๊ตฌ (Git, SVN)๋นŒ๋“œ ๋„๊ตฌ (Maven, Gradle)์ปจํ…Œ์ด๋„ˆ ํ”Œ๋žซํผ (Docker)ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ (JUnit, TestNG)๋ฐฐํฌ ๋„๊ตฌ (Ansible, Kubernetes)3. ํŒŒ์ดํ”„๋ผ..

ETC. 2024.08.06