λ°˜μ‘ν˜•

전체 κΈ€ 293

[Springboot] gradlew command not found / IntelliJ μΈν…”λ¦¬μ œμ΄ gradlew λΉŒλ“œ 였λ₯˜

Intro μ•ˆλ…•ν•˜μ„Έμš”. μΈν…”λ¦¬μ œμ΄ ν„°λ―Έλ„μ—μ„œ gradlew λΉŒλ“œλ₯Ό ν•˜λ €λ˜ 도쀑 μ•„λž˜μ™€ 같은 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. Why? μ €λŠ” μ•„λž˜μ™€ 같은 λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•˜μ˜€λŠ”λ°μš”, ꡬ글링을 ν•˜λ‹€κ°€ μ²˜μŒμ—λŠ” κΆŒν•œ 문제인 쀄 μ•Œκ³  κΆŒν•œμ„ λ°”κΏ”λ΄€μŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ 계속 같은 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. κ·Έλž˜μ„œ 더 ꡬ글링을 ν•΄λ΄€κ³ , μ œκ°€ 바보같은 μ‹€μˆ˜λ₯Ό ν•˜κ³  μžˆμ—ˆμŒμ„ κΉ¨λ‹¬μ•˜μŠ΅λ‹ˆλ‹€. gradlew build How to solve the problem λ°”λ‘œ λͺ…λ Ήμ–΄ μ•žμ— ./ λ₯Ό 뢙여주지 μ•Šμ•˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€. πŸ˜… λ¦¬λˆ…μŠ€/λ§₯κ³Ό μœˆλ„μš° λͺ…λ Ήμ–΄ μ‚¬μš©λ²•μ΄ λ‹€λ₯΄λ‹ˆ μ•„λž˜ λ‚΄μš© μ°Έκ³  λΆ€νƒλ“œλ¦½λ‹ˆλ‹€. Linux / MacOS ./gradlew Windows .\gradlew https://stackoverflow.com/questions/41700798/gr..

[AWS] μžλ™ 배포 μ„œλΉ„μŠ€, CodeDeployλž€?

Intro μ•ˆλ…•ν•˜μ„Έμš”. 졜근 API 개발 μ„œλ²„λ₯Ό κ΅¬μΆ•ν•˜λŠ” μž‘μ—…μ„ 맞게 λ˜μ–΄ μ—¬λŸ¬ κ°œλ…λ“€μ„ 읡히고 κ³΅λΆ€ν•˜λŠ” μ€‘μž…λ‹ˆλ‹€. 이번 μ‹œκ°„μ—λŠ” AWS Code Deploy에 λŒ€ν•΄ μ•Œμ•„λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€. CodeDeploy CodeDeployλŠ” μ˜¨ν”„λ ˆλ―ΈμŠ€ μΈμŠ€ν„΄μŠ€, μ„œλ²„λ¦¬μŠ€ Lambda ν•¨μˆ˜ λ˜λŠ” Amazon ECS μ„œλΉ„μŠ€λ‘œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 배포λ₯Ό μžλ™ν™”ν•˜λŠ” 배포 μ„œλΉ„μŠ€μž…λ‹ˆλ‹€. CodeDeploy μž₯점 μ„œλ²„, μ„œλ²„λ¦¬μŠ€ 및 μ»¨ν…Œμ΄λ„ˆ μ• ν”Œλ¦¬μΌ€μ΄μ…˜. CodeDeployλ₯Ό μ‚¬μš©ν•˜λ©΄ μ„œλ²„ μƒμ˜ κΈ°μ‘΄ μ• ν”Œλ¦¬μΌ€μ΄μ…˜κ³Ό Amazon ECS μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λ°°ν¬ν•˜λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λͺ¨λ‘ 배포할 수 μžˆμŠ΅λ‹ˆλ‹€. 배포 μžλ™ν™”. CodeDeployλŠ” 개발, ν…ŒμŠ€νŠΈ 및 ν”„λ‘œλ•μ…˜ ν™˜κ²½μ— 걸쳐 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 배포λ₯Ό μ™„μ „ μžλ™ν™”ν•©λ‹ˆλ‹€. 그리고 CodeDepl..

Devops/AWS 2023.01.27

[AWS] Simple Storage Service S3 λž€ λ¬΄μ—‡μΌκΉŒ?

Intro μ•ˆλ…•ν•˜μ„Έμš”. 이번 μ‹œκ°„μ—λŠ” AWS S3에 λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. AWS μš°μ„  AWS에 λŒ€ν•΄ λ¨Όμ € κ°„λ‹¨νžˆ μ„€λͺ…ν•˜λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€. AWSλŠ” Amazon Web Service, 즉 μ•„λ§ˆμ‘΄μ—μ„œ μ œκ³΅ν•˜λŠ” ν΄λΌμš°λ“œ μ„œλΉ„μŠ€λ‘œ λ‹€μ–‘ν•œ μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. AWSλŠ” 쉽고 λΉ λ₯Έ 확정성을 μ œκ³΅ν•˜κ³  μ €λ ΄ν•œ λΉ„μš©μœΌλ‘œ μ‚¬μš©ν•œ μš©λŸ‰ 만큼만 λΉ„μš©μ„ μ§€λΆˆν•˜λ©° λΉ λ₯Έ 속도 λ“± μ—¬λŸ¬κ°€μ§€ μž₯점을 μ§€λ‹ˆκ³  있죠. AWS μ„œλΉ„μŠ€ 쀑 ν•˜λ‚˜μΈ S3에 λŒ€ν•΄ 더 μžμ„Ένžˆ μ‚΄νŽ΄λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€. AWS S3(Simple Storage Service) S3(Simple Storage Service)λŠ” 데이터λ₯Ό μ €μž₯ν•˜κ±°λ‚˜ μΆ”μΆœν•˜κ²Œ ν•΄ μ£ΌλŠ” 온라인 μŠ€ν† λ¦¬μ§€ μ›Ή μ„œλΉ„μŠ€μž…λ‹ˆλ‹€. 즉 파일 μ„œλ²„μ˜ 역할을 ν•˜λŠ” μ„œλΉ„μŠ€μž…λ‹ˆλ‹€. ν•˜λ‚˜μ˜ μ €μž₯ 곡간을 κ΅¬μ„±ν•˜κ³  ..

Devops/AWS 2023.01.26

[Data structures] section2: λΉ…μ˜€ ν‘œκΈ°λ²• (Big O Notation)

4. λΉ…μ˜€ (BIG O) μ†Œκ°œ Objectives Big O ν‘œκΈ°λ²•μ˜ ν•„μš”μ„± Big O κ°€ 무엇인지 Big O κ°„λ‹¨ν•˜κ²Œ ν‘œν˜„ν•˜λŠ” 법 μ‹œκ°„ λ³΅μž‘μ„±κ³Ό 곡간 λ³΅μž‘μ„± μ •μ˜ Big O ν‘œκΈ°λ²•μ„ μ‚¬μš©ν•˜μ—¬ μ—¬λŸ¬ μ•Œκ³ λ¦¬μ¦˜ ν‰κ°€ν•˜κΈ° 둜그 (logarithm)이 무엇인지 What's the idea here? "Write a function that accepts a string input and returns a reversed copy" μ œλŒ€λ‘œ μž‘λ™ν•˜κΈ°λ§Œ ν•œλ‹€λ©΄ 그것 λ§ŒμœΌλ‘œλ„ μΆ©λΆ„ν•˜μ§€ μ•Šμ€κ°€? Who Cares? μ½”λ“œμ˜ μ„±λŠ₯을 μ–˜κΈ°ν•  λ•Œ μ •ν™•ν•œ μ „λ¬Έ μš©μ–΄λ₯Ό μ‚¬μš©ν•˜λŠ” 것이 μ€‘μš”ν•©λ‹ˆλ‹€. μ—¬λŸ¬ μ ‘κ·Όλ²•μ˜ μž₯단점을 μ–˜κΈ°ν• λ•Œλ„ μœ μš©ν•©λ‹ˆλ‹€. κ°€μž₯ 쒋은 해결책을 μ°ΎλŠ” 것이 κ·Έλ ‡κ²Œ λ»”ν•˜μ§€λŠ” μ•ŠμŠ΅λ‹ˆλ‹€. ν•œ 해결책에 정말 μ’‹κ³  또 ν•˜λ‚˜λŠ”..

[MongoDB] 샀딩(Sharding)μ΄λž€ 무엇인가? λͺ½κ³ λ””λΉ„ 샀딩 κ΅¬μ„±μš”μ†Œ μ‚΄νŽ΄λ³΄κΈ°

Intro μ•ˆλ…•ν•˜μ„Έμš”. 이번 μ‹œκ°„μ—λŠ” MonogoDB λͺ½κ³ λ””λΉ„μ˜ 샀딩에 λŒ€ν•΄ μ•Œμ•„λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€. What is Sharding? λ°μ΄ν„°λ² μ΄μŠ€ 샀딩은 μ—¬λŸ¬ μ‹œμŠ€ν…œμ— λŒ€κ·œλͺ¨ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μ €μž₯ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€μž…λ‹ˆλ‹€. 단일 μ‹œμŠ€ν…œ λ˜λŠ” λ°μ΄ν„°λ² μ΄μŠ€ μ„œλ²„λŠ” μ œν•œλœ μ–‘μ˜ λ°μ΄ν„°λ§Œ μ €μž₯ν•˜κ³  μ²˜λ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ 샀딩은 데이터λ₯Ό μƒ€λ“œλΌκ³  ν•˜λŠ” 더 μž‘μ€ 청크둜 λΆ„ν• ν•˜κ³  μ—¬λŸ¬ λ°μ΄ν„°λ² μ΄μŠ€ μ„œλ²„μ— μ €μž₯ν•¨μœΌλ‘œμ¨ μ΄λŸ¬ν•œ ν•œκ³„λ₯Ό κ·Ήλ³΅ν•©λ‹ˆλ‹€. Why? μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ„±μž₯함에 따라 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ‚¬μš©μž μˆ˜μ™€ μ €μž₯ν•˜λŠ” λ°μ΄ν„°μ˜ 양이 μ‹œκ°„μ΄ 지남에 따라 μ¦κ°€ν•©λ‹ˆλ‹€. 데이터 λ³Όλ₯¨μ΄ λ„ˆλ¬΄ 컀지고 λ„ˆλ¬΄ λ§Žμ€ μ‚¬μš©μžκ°€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ‚¬μš©ν•˜μ—¬ λ™μ‹œμ— 정보λ₯Ό μ½κ±°λ‚˜ μ €μž₯ν•˜λ €κ³  ν•˜λ©΄ λ°μ΄ν„°λ² μ΄μŠ€μ— 병λͺ© ν˜„μƒμ΄ λ°œμƒν•©λ‹ˆλ‹€. μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ 느렀..

Database/monogodb 2023.01.24

[JavaScript] μžλ°”μŠ€ν¬λ¦½νŠΈ Object array νŠΉμ • ν•„λ“œ κΈ°μ€€ μ˜€λ¦„μ°¨μˆœ μ •λ ¬ν•˜λŠ” 방법

Intro μ•ˆλ…•ν•˜μ„Έμš”. 이번 μ‹œκ°„μ—λŠ” JavaScript μ—μ„œ Object array λ₯Ό μ •λ ¬ν•˜λŠ” 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. How to do μ•„λž˜μ˜ 였브젝트 μ–΄λ ˆμ΄κ°€ μžˆλ‹€κ³  κ°€μ •ν•΄λ΄…μ‹œλ‹€. const objectArray = [ { name: 'aa', year: 2008 }, { name: 'bb', year: 2004 }, { name: 'cc', year: 2003 }, { name: 'dd', year: 1996 }, { name: 'ee', year: 1995 }, { name: 'ff', year: 2015 } ]; javascript의 sort() λ©”μ„œλ“œλ₯Ό ν†΅ν•΄μ„œ year ν•„λ“œ κΈ°μ€€μœΌλ‘œ μ˜€λ¦„μ°¨μˆœ 정렬을 ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€. objectArray.sort((x, y) => x.year - y.yea..

[Kotlin] μ½”ν‹€λ¦° 리슀트 list νŠΉμ • ν•„λ“œλ‘œ λ‚΄λ¦Όμ°¨μˆœ(DESC) μ •λ ¬ν•˜λŠ” 방법

Intro μ•ˆλ…•ν•˜μ„Έμš”. 이번 μ‹œκ°„μ—λŠ” μ½”ν‹€λ¦°μ—μ„œ λ‚΄λ¦Όμ°¨μˆœμœΌλ‘œ μ •λ ¬ν•˜λŠ” 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. How to do μ½”ν‹€λ¦° λ‚΄μž₯ ν•¨μˆ˜μΈ sortedByDescending λ₯Ό μ‚¬μš©ν•˜λ©΄ λ˜λŠ”λ°μš”, λ‚΄λ¦Όμ°¨μˆœμ— μ‚¬μš©ν•˜κ³ μž ν•˜λŠ” νŠΉμ • ν•„λ“œ 값을 λ„£μ–΄μ£Όλ©΄ λ©λ‹ˆλ‹€. result.sortedByDescending { it.date } https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/sorted-by-descending.html

Programming/Kotlin 2023.01.20

μ£Όλ‹ˆμ–΄ 개발자의 2022λ…„ 12μ›” 회고

Work 2022λ…„ 12월은 μ œκ²ŒλŠ” μ μž–μ΄ νž˜λ“€μ—ˆλ˜ λ‹¬μ΄μ˜€μŠ΅λ‹ˆλ‹€. 상황 μƒˆλ‘œμš΄ μ›Ήμ•± ν”„λ‘œμ νŠΈ 리뉴얼을 μ‹œμž‘ν•˜λ©΄μ„œ, ν”„λ‘ νŠΈμ™€ λ°±μ—”λ“œλ₯Ό μ²˜μŒλΆ€ν„° ꡬ성해야 ν–ˆμŠ΅λ‹ˆλ‹€. ν”„λ‘ νŠΈμ—”λ“œ 지식도 많이 λΆ€μ‘±ν•˜λ‹€λŠ” 것을 항상 느끼고 μžˆμ—ˆκ³ , κ·Έ μƒνƒœμ—μ„œ λ°±μ—”λ“œκΉŒμ§€ ν•΄μ•Ό ν•˜λŠ” 상황에 λ§Žμ€ 슀트레슀λ₯Ό λ°›μ•˜μŠ΅λ‹ˆλ‹€. μ œκ°€ μΌν•˜κ³  싢은 ν¬μ§€μ…˜μ€ ν”„λ‘ νŠΈ μ—”λ“œμ˜€μ§€λ§Œ, ν•„μš”λ‘œ μ˜ν•΄ λ°°μ›Œμ•Ό ν•˜λŠ” μƒν™©μ΄μ˜€μ£ . κ·Έλž˜μ„œ λ§Žμ€ 슀트레슀λ₯Ό λ°›μ•˜μŠ΅λ‹ˆλ‹€. λ°±μ—”λ“œκ°€ μžμ‹ μ΄ μ—†μ—ˆκ³ , κ·Έλž˜μ„œ νšŒμ‚¬μ— λ‚˜κ°€λŠ” 것 μ‘°μ°¨ 슀트레슀λ₯Ό λ°›μ•˜μŠ΅λ‹ˆλ‹€. 특히 λ°±μ—”λ“œμ˜ 경우 μ½”ν‹€λ¦°κ³Ό μŠ€ν”„λ§ ν”„λ ˆμž„μ›Œν¬λ₯Ό μ‚¬μš©ν–ˆλŠ”λ°μš”, μ–Έμ–΄λŠ” λ¬Όλ‘  ν”„λ ˆμž„ μ›Œν¬μ— λŒ€ν•œ 지식이 λ’·λ°›μΉ¨ λ˜μ§€ μ•Šμ€ μƒνƒœμ—μ„œ ν•˜λ €λ‹ˆ λ”μš± νž˜λ“€μ—ˆλ˜ 것 κ°™μŠ΅λ‹ˆλ‹€. ν•΄λ‚΄μ•Ό ν•œλ‹€λŠ” 압박감이 λ„ˆλ¬΄ 크게 λ“€μ–΄μ„œ 심μž₯이 두근거리고..

[Springboot] Http Status 415 error 였λ₯˜ (415 Unsupported Media Type)

Intro μ•ˆλ…•ν•˜μ„Έμš”. Springboot λ₯Ό μ‚¬μš©ν•˜λ˜ 도쀑 Http Status 415 error μ—λŸ¬κ°€ λ°œμƒν•˜μ˜€μŠ΅λ‹ˆλ‹€. 415 Unsupported Media Type Why? κΈ°μ‘΄ μ»¨νŠΈλ‘€λŸ¬μ—μ„œ λ§€κ°œλ³€μˆ˜λ₯Ό λ°›κΈ° μœ„ν•΄ @RequestParam μ–΄λ…Έν…Œμ΄μ…˜μ„ μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€. λ§€κ°œλ³€μˆ˜ 5개λ₯Ό λ°›κ³  있던 터라 μƒλ‹Ήνžˆ λ³΅μž‘ν•΄ 보여 ν•΄λ‹Ή λ§€κ°œλ³€μˆ˜λ“€μ„ ν•˜λ‚˜μ˜ Dto Req 객체둜 λ°”κΏ”μ£Όμ—ˆμŠ΅λ‹ˆλ‹€. 이후 μ½”λ“œ 싀행을 ν–ˆλŠ”λ°, λ‹€μŒκ³Ό 같은 μ—λŸ¬κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. Springboot λ₯Ό 잘 λͺ°λΌμ„œ, ν•΄λ§Έμ§€λ§Œ 저희에겐 κ΅¬κΈ€λ‹˜μ΄ μžˆμŠ΅λ‹ˆλ‹€. 🀧 !! ꡬ글링 ν›„, μ œκ°€ μ‚¬μš©ν•œ μ–΄λ…Έν…Œμ΄μ…˜μ΄ 잘λͺ» λ˜μ—ˆλ‹€λŠ” 것을 μ•Œκ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. @RequestParam λŠ” 단일 데이터λ₯Ό λ°›κΈ° μœ„ν•΄μ„œ μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ—, λ‹€μŒκ³Ό 같이 μ—¬λŸ¬ λ§€κ°œλ³€μˆ˜κ°€ λ“€μ–΄..

[Kotlin] μ½”ν‹€λ¦° λ¬Έμžμ—΄ κ΅μ²΄ν•˜κΈ° / λ¬Έμžμ—΄μ˜ νŠΉμ • μΈλ±μŠ€μ— 문자 λ°”κΎΈλŠ” 방법

Intro μ•ˆλ…•ν•˜μ„Έμš”. 이번 μ‹œκ°„μ—λŠ” μ½”ν‹€λ¦° λ¬Έμžμ—΄ (string)의 νŠΉμ • 인덱슀 문자 λ°”κΎΈλŠ” 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. How to do 인덱슀 문자 λ°”κΎΈλŠ” λ§Žμ€ 방법이 μžˆκ² μ§€λ§Œ, μ €λŠ” substring() λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ μ§„ν–‰ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€. μ•„λž˜μ™€ 같이 "20230116"μ΄λΌλŠ” λ¬Έμžμ—΄μ΄ μžˆλ‹€κ³  κ°€μ •ν•΄λ΄…μ‹œλ‹€. μ—¬κΈ°μ„œ 인덱슀 4 μœ„μΉ˜μ— "12"둜 λ°”κΎΈκΈ° μœ„ν•΄ μ•„λž˜μ™€ 같이 κ΅¬ν˜„ν•˜μ˜€μŠ΅λ‹ˆλ‹€. substring() ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ ꡐ체할 문자λ₯Ό λΆ„λ¦¬ν•˜κ³ , + μ—°μ‚°μžλ₯Ό 톡해 λ‚˜λ¨Έμ§€ λ¬Έμžμ—΄μ„ λ”ν•΄μ€λ‹ˆλ‹€. println()을 톡해 λ‚˜μ˜¨ κ²°κ³ΌλŠ” "20231216" μž…λ‹ˆλ‹€. "01"이 "12"둜 잘 λ°”λ€Œμ–΄ λ™μž‘ν•˜κ³  μžˆλ„€μš” :) fun main() { var string = "20230116" val char = "12..

Programming/Kotlin 2023.01.16
λ°˜μ‘ν˜•