λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
λ°˜μ‘ν˜•

IT Blog404

[Java] - Project Lombok(둬볡) • μ•ˆλ…•ν•˜μ„Έμš”~ 이전에 μš΄μ˜ν•˜λ˜ λΈ”λ‘œκ·Έ 및 GitHub, 곡뢀 λ‚΄μš©μ„ μ •λ¦¬ν•˜λŠ” Study-GitHub κ°€ μžˆμŠ΅λ‹ˆλ‹€! • 넀이버 λΈ”λ‘œκ·Έ • GitHub • Study-GitHub • πŸ” πŸ“Ž Lombok(둬볡) μ•ˆλ…•ν•˜μ„Έμš”! μ΄λ²ˆμ— 정리할 λ‚΄μš©μ€ Project Lombok(둬볡) μž…λ‹ˆλ‹€. Lombok은 Java 라이브러리둜, μžλ°” 개발자라면 λŒ€λΆ€λΆ„ ν•œ λ²ˆμ―€μ€ μ‚¬μš©ν•΄λ³΄μ§€ μ•Šμ•˜μ„κΉŒ ν•˜λŠ” μ •~말 많이 μ‚¬μš©ν•˜λŠ” λΌμ΄λΈŒλŸ¬λ¦¬μž…λ‹ˆλ‹€. μ € λ˜ν•œ ν‰μ†Œμ— κ°œλ°œμ„ ν•  λ•Œ Lombok 라이브러리 μ—†μ΄λŠ” κ°œλ°œμ„ λͺ» ν•  μ •λ„λ‘œ(?) 많이 μ‚¬μš©μ„ ν•˜λŠ”λ°μš”.. γ…Žγ…Ž 이번 μ‹œκ°„μ—λŠ” Lombok μ΄λž€ 무엇인지, μ–΄λ–»κ²Œ μ‚¬μš©ν•˜λŠ”μ§€μ™€ μž₯단점에 λŒ€ν•΄ μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€ :) κ°„λž΅ν•˜κ²Œ λͺ©μ°¨λ₯Ό λ‚˜νƒ€λ‚΄λ©΄ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€! Lombok μ΄λž€? Lombok μ„€.. 2021. 6. 20.
Spring Boot Maven profile 운영 & 개발 DB 뢄리(AWS EC2) πŸ“Ž Spring Boot(Maven) profile 운영 & 개발 DB 뢄리 (ν‹€λ¦° λ‚΄μš©μ΄ μžˆμ„μˆ˜λ„ μžˆμœΌλ‹ˆ λΉ„νŒμ μœΌλ‘œ λ΄μ£Όμ‹œλ©΄ 될 것 κ°™μŠ΅λ‹ˆλ‹€..! πŸ˜‚) μ•ˆλ…•ν•˜μ„Έμš”! μ΄λ²ˆμ— 정리할 λ‚΄μš©μ€ μŠ€ν”„λ§ λΆ€νŠΈμ—μ„œ 운영 & 개발 뢄리 및 AWS EC2에 배포 μž…λ‹ˆλ‹€. μ‹€λ¬΄μ—μ„œλŠ” μ‹€μ œ μ„œλΉ„μŠ€λ˜λŠ” DB와 κ°œλ°œμ€‘μΈ DB의 μ •λ³΄λŠ” λ‹€λ₯΄κ²Œ 관리λ₯Ό ν•˜λŠ”λ° 이λ₯Ό μœ„ν•΄ μŠ€ν”„λ§ λΆ€νŠΈμ—μ„œ profile을 톡해 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ 배포할 λ•Œ 운영과 κ°œλ°œμ„ λΆ„λ¦¬ν•΄μ„œ 배포할 수 μžˆλ„λ‘ μ§„ν–‰ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€. λ˜ν•œ μ €λŠ” ν˜„μž¬ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ AWS EC2 ν™˜κ²½μ—μ„œ 운영, 배포λ₯Ό μ§„ν–‰ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. λ‘œμ»¬μ—μ„œ 개발 ν›„ 배포λ₯Ό ν•˜κΈ° μœ„ν•΄ GitHub에 μ½”λ“œλ₯Ό pushν•œ λ’€ AWSμ—μ„œ pull을 ν•˜κ³  배포λ₯Ό μ§„ν–‰ν•˜κ²Œ λ˜λŠ”λ°μš”, μ΄λŸ¬ν•œ κ³Όμ •μ—μ„œ λ―Όκ°ν•œ 정보듀(.. 2021. 6. 18.
Spring Data JPA μ¦‰μ‹œ λ‘œλ”©(Eager Loading) & 지연 λ‘œλ”©(Lazy Loading) πŸ“Ž JPA - @ManyToOne μ¦‰μ‹œ λ‘œλ”©κ³Ό 지연 λ‘œλ”©(Eager Loading / Lazy Loading) Spring Data JPAμ—μ„œ @ManyToOne(N:1)으둜 연관관계가 μ„€μ •λ˜μ–΄ μžˆλŠ” 2개의 Entityκ°€ μ‘΄μž¬ν•  λ•Œ, λ°μ΄ν„°λ² μ΄μŠ€μ˜ μž…μž₯μ—μ„œ 보면 join이 ν•„μš”ν•©λ‹ˆλ‹€. μ‹€μ œ @ManyToOne의 경우 FKμͺ½μ˜ μ—”ν‹°ν‹°λ₯Ό κ°€μ Έμ˜¬ λ•Œ PKμͺ½μ˜ 엔티티도 같이 κ°€μ Έμ˜€κ²Œ λ˜λŠ”λ°μš”, μ΄λŸ¬ν•œ 과정이 κΌ­ ν•„μš”ν•œκ±΄μ§€, ν•„μš”ν•˜μ§€ μ•Šλ‹€λ©΄ μ–΄λ–»κ²Œ ν•΄κ²°ν•  수 μžˆλŠ”μ§€ μ¦‰μ‹œ λ‘œλ”©κ³Ό 지연 λ‘œλ”©μ— λŒ€ν•΄ 예제λ₯Ό 톡해 μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€. ⌨️ Board, Member μ—”ν‹°ν‹° import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Getter; import .. 2021. 6. 17.
GitHub(κΉƒν—ˆλΈŒ) - 디렉토리에 ν™”μ‚΄ν‘œ ν‘œμ‹œ(폴더 클릭이 μ•ˆλ  λ•Œ) πŸ“Ž GitHub 디렉토리 ν™”μ‚΄ν‘œ ν‘œμ‹œ -> 폴더 μ ‘κ·Ό λΆˆκ°€λŠ₯ κΉƒν—ˆλΈŒμ—μ„œ ν•œ 디렉토리에 λ‹€λ₯Έ 디렉토리λ₯Ό μΆ”κ°€ν•˜λŠ” 도쀑 μœ„μ™€ 같이 디렉토리에 ν™”μ‚΄ν‘œ ν‘œμ‹œκ°€ 생기고, 디렉토리에 접근이 λ˜μ§€μ•ŠλŠ” λ¬Έμ œκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. μœ„μ™€ 같은 λ¬Έμ œλŠ” ν•΄λ‹Ή 폴더에 .git 폴더가 μƒκ²¨μ„œ λ°œμƒν•˜λŠ” λ¬Έμ œμž…λ‹ˆλ‹€. μœ„ 폴더쀑 μ΅œμƒμœ„ 디렉토리에 이미 .gitμ΄λΌλŠ” 파일이 μƒμ„±λ˜μ—ˆλŠ”λ°, ν•΄λ‹Ή 디렉토리(inflearn-crawling-jsoup) μ—μ„œλ„ pushλ₯Ό μ§„ν–‰ν•˜λŠ” 과정에 .git 파일이 μƒκ²¨μ„œ λ°œμƒν•˜λŠ” 였λ₯˜μž…λ‹ˆλ‹€. πŸ“Ž ν•΄κ²° .git 파일 제거 -> μŠ€ν…Œμ΄μ§€ 파일 제거 -> add, commit, push 진행 .git 파일 제거 λ¨Όμ € μœ„ λ¬Έμ œκ°€ λ°œμƒν•˜λŠ” λ””λ ‰ν† λ¦¬μ—μ„œ .git νŒŒμΌμ„ μ œκ±°ν•©λ‹ˆλ‹€. $ rm -rf .git λͺ…λ Ήμ–΄λ‘œ ν•΄λ‹Ή.. 2021. 6. 15.
IntelliJ(Ultimate) + Thymeleaf Live reload(μ‹€μ‹œκ°„ 반영)μ μš©ν•˜κΈ° πŸ“Ž μΈν…”λ¦¬μ œμ΄ + Thymeleaf(νƒ€μž„λ¦¬ν”„) μ—μ„œ Live reload μ μš©ν•˜κΈ° μ•ˆλ…•ν•˜μ„Έμš”, 이번 μ‹œκ°„μ—μ„œλŠ” μΈν…”λ¦¬μ œμ΄ + μŠ€ν”„λ§λΆ€νŠΈ + νƒ€μž„λ¦¬ν”„λ₯Ό μ‚¬μš©ν•  λ•Œ, κ°„λ‹¨ν•œ html νŒŒμΌμ„ λ³€κ²½ν•œ ν›„ μž¬μ‹€ν–‰ 없이 μƒˆλ‘œκ³ μΉ¨μ„ 톡해 λ°”λ‘œλ°”λ‘œ κ²°κ³Όλ₯Ό 확인할 수 μžˆλ„λ‘ μ„€μ •ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€. (맀 우 κ°„ 단) 1. μ„€μ • 파일(application.xml) μ μš©ν•˜κΈ° spring.thymeleaf.cache=false Thymeleaf도 JSP처럼 μ„œλ²„μ—μ„œ κ²°κ³Όλ₯Ό λ§Œλ“€μ–΄ λΈŒλΌμš°μ €(ν΄λΌμ΄μ–ΈνŠΈ)둜 전솑을 ν•©λ‹ˆλ‹€. μœ„ cache=false 섀정은 이미 μƒμ„±λœ κ²°κ³Όλ₯Ό μ„œλ²„μ—μ„œ 계속 보관할 것인지에 λŒ€ν•œ μ„€μ •μž…λ‹ˆλ‹€. Thymeleaf νŒŒμΌμ„ μˆ˜μ •ν•˜κ³  μ €μž₯ν•œ ν›„ λΈŒλΌμš°μ €μ—μ„œ λ³€κ²½λœ κ²°κ³Όλ₯Ό ν™•μΈν•˜κΈ° μœ„ν•œ μ„€μ •μž…λ‹ˆλ‹€. 2. Configu.. 2021. 6. 14.
JUnit - @ParameterizedTest, @ValueSource, @CsvSource, @MethodSource μ–΄λ…Έν…Œμ΄μ…˜ • μ•ˆλ…•ν•˜μ„Έμš”~ 이전에 μš΄μ˜ν•˜λ˜ λΈ”λ‘œκ·Έ 및 GitHub, 곡뢀 λ‚΄μš©μ„ μ •λ¦¬ν•˜λŠ” Study-GitHub κ°€ μžˆμŠ΅λ‹ˆλ‹€! • 넀이버 λΈ”λ‘œκ·Έ • GitHub • Study-GitHub • πŸ” πŸ“Ž JUnit5 - @ParameterizedTest, @ValueSource, @CsvSource, @MethodSource μ•ˆλ…•ν•˜μ„Έμš”! 이번 μ‹œκ°„μ— 정리할 λ‚΄μš©μ€ JUnitμ—μ„œ νŒŒλΌλ―Έν„°μ˜ ν…ŒμŠ€νŠΈμ™€ κ΄€λ ¨λœ λ‹€μ–‘ν•œ ν…ŒμŠ€νŠΈ λ°©λ²•μž…λ‹ˆλ‹€. μ΄λ²ˆμ— λ„₯μŠ€νŠΈμŠ€ν…μ—μ„œ μ§„ν–‰ν•˜λŠ” μžλ°” ν”Œλ ˆμ΄κ·ΈλΌμš΄λ“œ 과정을 λ“€μœΌλ©΄μ„œ ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό μž‘μ„±ν•˜κ³  μžˆλŠ”λ°μš”, 이와 κ΄€λ ¨ν•΄ νŒŒλΌλ―Έν„°μ˜ 쀑볡 값에 λŒ€ν•œ ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό μ œκ±°ν•˜κ±°λ‚˜, μž…λ ₯ 값에 따라 κ²°κ³Ό 값이 λ‹€λ₯Έ κ²½μš°λ„ ν…ŒμŠ€νŠΈκ°€ κ°€λŠ₯ν•˜λ„λ‘ κ΅¬ν˜„ν•˜λŠ” κ³Όμ •μ—μ„œ μœ„μ˜ μ–΄λ…Έν…Œμ΄μ…˜μ„ μ‚¬μš©ν•˜κ²Œ λ˜μ—ˆλŠ”λ°μš”, κ°„λž΅ν•˜κ²Œ μ •.. 2021. 6. 8.
ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€[Java] - λ² μŠ€νŠΈμ•¨λ²”(ν•΄μ‹œ) https://programmers.co.kr/learn/courses/30/lessons/42579 μ½”λ”©ν…ŒμŠ€νŠΈ μ—°μŠ΅ - λ² μŠ€νŠΈμ•¨λ²” 슀트리밍 μ‚¬μ΄νŠΈμ—μ„œ μž₯λ₯΄ λ³„λ‘œ κ°€μž₯ 많이 μž¬μƒλœ λ…Έλž˜λ₯Ό 두 κ°œμ”© λͺ¨μ•„ 베슀트 앨범을 μΆœμ‹œν•˜λ € ν•©λ‹ˆλ‹€. λ…Έλž˜λŠ” 고유 번호둜 κ΅¬λΆ„ν•˜λ©°, λ…Έλž˜λ₯Ό μˆ˜λ‘ν•˜λŠ” 기쀀은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. μ†ν•œ λ…Έλž˜κ°€ programmers.co.kr ν‹€λ¦° μ½”λ“œ import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; class Solution { public static int[] solution(String[] genres, int[] pla.. 2021. 6. 4.
2021λ…„ 5μ›” 회고둝 & 퇴사 벌써 내일이 5μ›”μ˜ λ§ˆμ§€λ§‰λ‚ μ΄λ‹€.. 2021λ…„μ˜ λ°˜μ •λ„κ°€ μ§€λ‚˜κ°€κ³  μžˆλŠ”λ°, μ‹œκ°„μ΄ 정말 λ„ˆλ¬΄ λ„ˆλ¬΄ 빨리 κ°€λŠ” 것 κ°™λ‹€. 28일 κΈˆμš”μΌ, μ—Šκ·Έμ œ 퇴사λ₯Ό ν–ˆλ‹€. μž‘λ…„ 5μ›” 11일에 μž…μ‚¬λ₯Ό ν•΄μ„œ 1λ…„ 쑰금 λ‹€λ‹ˆκ³  퇴사λ₯Ό ν•˜κ²Œ λ˜μ—ˆλŠ”λ°, 이번 νšŒκ³ λ‘μ—” 퇴사에 μ΄ˆμ μ„ λ§žμΆ°μ„œ κ°„λ‹¨ν•˜κ²Œ 회고λ₯Ό μ§„ν–‰ν•˜κ³ μž ν•œλ‹€. πŸ“Ž 퇴사 1년을 λ„˜μ§“ λ‹€λ‹ˆκ³  퇴사λ₯Ό ν•˜κ²Œ λ˜μ—ˆλ‹€. ν™”μš”μΌμ— 퇴사λ₯Ό ν•˜κ² λ‹€κ³  말씀을 λ“œλ¦¬κ³  -> μˆ˜μš”μΌ νŒ€μž₯λ‹˜κ³Όμ˜ λ©΄λ‹΄ -> λͺ©μš”일 정리 -> κΈˆμš”μΌ 퇴사 .. 퇴사 μ ˆμ°¨κ°€ 일주일도 μ•ˆλΌμ„œ λλ‚˜λ²„λ Έλ‹€. λ‚˜μ˜ ν›„μž„μ€ λ”°λ‘œ μ—†μ—ˆκ³ , 일년정도 닀녔기에 μΈμˆ˜μΈκ³„ ν•  λ‚΄μš©μ΄ λ§Žμ§€λŠ” μ•Šμ•˜λ‹€. 퇴사λ₯Ό ν†΅λ³΄ν•˜κ³  1달정도 더 λ‹€λ‹ˆμ§€ μ•Šμ„κΉŒ μƒκ°ν–ˆλŠ”λ°, λ„ˆλ¬΄ 빨리 퇴사가 μ§„ν–‰λ˜μ–΄μ„œ μ œλŒ€λ‘œ 마무리λ₯Ό λͺ»ν•˜κ³  λ‚˜μ˜¨κ²Œ 죄솑할따름이닀. .. 2021. 5. 30.
Spring Security - CSRF(Cross-Site Request Forgery) • μ•ˆλ…•ν•˜μ„Έμš”~ 이전에 μš΄μ˜ν•˜λ˜ λΈ”λ‘œκ·Έ 및 GitHub, 곡뢀 λ‚΄μš©μ„ μ •λ¦¬ν•˜λŠ” Study-GitHub κ°€ μžˆμŠ΅λ‹ˆλ‹€! • 넀이버 λΈ”λ‘œκ·Έ • GitHub • Study-GitHub • πŸ” πŸ“Ž CSRF(Cross-Site Request Forgery) μ•ˆλ…•ν•˜μ„Έμš”, μ΄λ²ˆμ— 정리할 λ‚΄μš©μ€ CSRF(Cross-Site Request Forgery) μž…λ‹ˆλ‹€! μŠ€ν”„λ§ μ‹œνλ¦¬ν‹°μ˜ μ–΄λ…Έν…Œμ΄μ…˜μΈ @EnableWebSecurity μ–΄λ…Έν…Œμ΄μ…˜μ€ 기본적으둜 CSRF 곡격을 λ°©μ§€ν•˜λŠ” κΈ°λŠ₯을 μ§€μ›ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. μ‹œνλ¦¬ν‹°λ₯Ό μ μš©ν•˜λ©΄ 보톡 configure() λ©”μ„œλ“œμ—λŠ” μ•„λž˜μ™€ 같이 csrf().disable()둜 μ μš©μ„ ν•˜λŠ”λ°μš”, μ΄λŸ¬ν•œ CSRFλž€ 무엇인지 μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€! πŸ˜ƒ 🎯 CSRFλž€? μ‚¬μ΄νŠΈ κ°„ μš”μ²­ μœ„μ‘°(Cross-Site .. 2021. 5. 26.
OSS 개발자포럼 Meetup μŠ€νƒ€νŠΈμ—…(StartUp)을 λ§Œλ‚˜λ‹€ 개발자 1일차, CTO 1일차 그리고 6λ…„ - κΉ€μ€€κΈ°λ‹˜ (λž˜λΈ”μ—… μ£Όμ‹νšŒμ‚¬) μ‚¬λžŒλ“€μ„ μ±„μš©ν•˜λŠ” μž…μž₯μ—μ„œ μ‚¬λžŒλ“€μ΄ μš”λŸ° λΆ€λΆ„μ—μ„œ μž˜ν–ˆμœΌλ©΄ μ’‹μ•˜μ„ λ²•ν•œ 뢀뢄듀이 μ‘΄μž¬ν–ˆμŒ μ΄λŸ¬ν•œ μƒκ°μ˜ 과정듀을 κ³΅μœ ν•˜λ©΄ μ—¬λŸ¬ μ‚¬λžŒλ“€μ˜ 어렀움, 문제점, ν•΄κ²° λ°©μ•ˆ 등등에 λŒ€ν•΄ 도움이 λ˜μ§€ μ•Šμ„κΉŒ ν•΄μ„œ μ„Έμ…˜μ„ 쀀비함 λ‹€λ£° λ‚΄μš© λ‚΄κ°€ μŠ€νƒ€νŠΈμ—…μ„ μ„ νƒν•œ 계기와 κ³Όμ • λ…Όλ¬Έ λ°œν‘œ ν›„ 쒋은 κΈ°μ—…μ—μ„œ ν¬μ§€μ…˜ μ œμ•ˆμ„ λ°›μ•˜μœΌλ‚˜.. λ‚΄κ°€ κ³Όμ—° 평생 논문을 μ“°λ©΄μ„œ μ‚΄ 수 μžˆμ„κΉŒ? λ‚΄κ°€ λ°•μ‚¬ν•™μœ„λ₯Ό 받은 λΆ„μ•Ό, μ£Όμ œκ°€ μž₯기적으둜 재미λ₯Ό 뢙이고 ν•  수 μžˆλŠ” κ²ƒμΌκΉŒ? μ§€κΈˆ μŠ€νƒ€νŠΈμ—…μ„ ν•΄λ³΄λŠ”κ²Œ λ‚˜μ„κΉŒ λ‚˜μ€‘μ— ν•΄λ³΄λŠ”κ²Œ λ‚˜μ„κΉŒ? μ§€κΈˆ μ œμ•ˆμ„ 받은 것과 κ°™κ±°λ‚˜ 더 쒋은 μˆ˜μ€€μ˜ νŒ€μ„ λ§Œλ‚  수 μžˆμ„κΉŒ? 10λ…„ λ„˜κ²Œ μ•Œκ³ κ³„μ‹œλŠ” ν˜„ λŒ€ν‘œλ‹˜κ³Όμ˜ κ²½ν—˜μ—μ„œ λ΄€μ„λ•Œ 많이 λ°°μ› .. 2021. 5. 15.
λ°˜μ‘ν˜•