๐Ÿ’ป BackEnd 29

๐ŸŸจ [Java] [์˜ˆ์™ธ ์ฒ˜๋ฆฌ]Checked Exception VS Unchecked Exception

์ด์ „์˜ ๊ธ€์—์„œ ์˜ˆ์™ธ์ฒ˜๋ฆฌ์— ๋Œ€ํ•ด ๋‹ค๋ฃฌ์ ์ด ์žˆ๋‹ค. ๊ธ€์„ ๋‹ค์‹œ ์ฝ์–ด๋ณด๋‹ค ๋ณด๋‹ˆ Runtime Exception ์— ๋Œ€ํ•ด ์ œ๋Œ€๋กœ ์„œ์ˆ ํ•˜์ง€ ์•Š์•„์„œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๊ฐ€ ์ค‘์š”ํ•œ ๋งŒํผ ๋‹ค์‹œ ํ•œ ๋ฒˆ ์ •๋ฆฌํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ๐Ÿ“Œ 1. ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ž€? ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ž€, ์˜ˆ์™ธ๋‚˜ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒ ๊ฐ€๋Šฅํ•œ ์ƒํ™ฉ์„ ๋ฏธ์—ฐ์— ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฝ”๋“œ ์ƒ์œผ๋กœ ๋ฏธ๋ฆฌ ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ ๐Ÿ“Œ 2. ์˜ˆ์™ธ (Exception) ์™€ ์—๋Ÿฌ (Error) โšก ์˜ˆ์™ธ(Exception)๋ž€ ? ์˜ˆ์™ธ๋Š” Checked Exception๊ณผ Unchecked Exception์œผ๋กœ ๋‚˜๋‰œ๋‹ค. Checked Exception์€ Unchecked Exception์„ ์ œ์™ธํ•œ ๋ชจ๋“  ์˜ˆ์™ธ์ด๋‹ค. ์ปดํŒŒ์ผ ์‹œ ์˜ˆ์™ธ๋ฐœ์ƒ ์—ฌ๋ถ€๋ฅผ ์ฒดํฌํ•˜๊ณ  ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ํ•˜์ง€ ์•Š์œผ๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ๋ฐ˜๋ฉด, Unchecked ..

๐ŸŸข [ SpringBoot ] [ AWS EC2 ] [Github] EC2์—์„œ Github ์—ฐ๋™

EC2 ์—์„œ Github ์—ฐ๋™ํ•˜๊ธฐ EC2 ์„œ๋ฒ„์— ๋Œ€ํ•œ ์„ค์ •์€ ๋งˆ์นœ ์ƒํƒœ์—์„œ ์ง„ํ–‰ํ•œ๋‹ค. 1. EC2 ์—์„œ Key ์ƒ์„ฑ $ cd /home/ubuntu/.ssh $ ssh-keyget -t rsa -C gitbhutEmail -- ""๋ฅผ ์“ฐ์ง€ ์•Š๋„๋ก ์ฃผ์˜ !! id_rsa๋ฅผ ์ €์žฅํ•  ์œ„์น˜๋ฅผ ์ง€์ •ํ•ด์ค€๋‹ค. ๋‚˜๋Š” /home/ubuntu/.ssh ์•ˆ์— ์ƒ์„ฑํ•˜์˜€๋‹ค. passphrase๋Š” Enter ๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋œ๋‹ค. $ cat /home/ubuntu/.ssh/id_rsa.pub -- ๋ฐ˜๋“œ์‹œ .pub ํ‚ค๋ฅผ ํ™•์ธํ•ด์•ผํ•จ .pub๋ฅผ Github์— ๋“ฑ๋กํ•ด์•ผ ํ•˜๋ฏ€๋กœ .pub๋ฅผ ์žŠ์–ด๋ฒ„๋ฆฌ์ง€ ๋ง์ž 2. Github Settings - SSH and GPG keys Github Settings์˜ SSH and GPG keys์— ๋“ค์–ด๊ฐ€์„œ ..

๐Ÿ’ป[Jenkins] ์  ํ‚จ์Šค๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

1. ์  ํ‚จ์Šค๋ž€ ๋ฌด์—‡์ธ๊ฐ€? ๋จผ์ € ์  ํ‚จ์Šค๋ฅผ ์•Œ์•„๋ณด๊ธฐ ์ „, CI/CD์— ๋Œ€ํ•œ ์ดํ•ด๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค. CI (Continuous Integration) ์ง€์†์ ์ธ ํ†ตํ•ฉ ์—ฌ๋Ÿฌ ๊ฐœ๋ฐœ์ž ๋“ค์ด ์ง€์†์ ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ํ†ตํ•ฉํ•˜๋Š” ๊ฒƒ CD (Continuous Deployment / Continuous Delivery) ์ง€์†์ ์ธ ๋ฐฐํฌ ๋ณ€๊ฒฝ ์‚ฌํ•ญ๋“ค์„ ํ…Œ์ŠคํŠธ์™€ ๋นŒ๋“œ๋ฅผ ๊ฑฐ์น˜๊ณ , ์‚ฌ์šฉ์ž์—๊ฒŒ ์ž๋™์œผ๋กœ ๋ฐฐํฌ CI/CD ๊ณผ์ •์ธ ์œ„์˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™๋‹ค. 1. ๋กœ์ปฌ์—์„œ ๊ฐœ๋ฐœ ํ›„ ์ปค๋ฐ‹ 2. Github WebHook ์„ ์ด์šฉํ•ด ์  ํ‚จ์Šค์—๊ฒŒ ์ „๋‹ฌ 3. ๋นŒ๋“œ๊ฐ€ ์„ฑ๊ณตํ•˜๊ฒŒ ๋˜๋ฉด ๋ฐฐํฌ ์„œ๋ฒ„๋กœ ์ „์†ก 4. ๋นŒ๋“œ๊ฐ€ ์‹คํŒจํ•  ๊ฒฝ์šฐ ๋กœ๊ทธ๋ฅผ ๋‚จ๊ธฐ๊ณ  ์•Œ๋ฆผ ๋‹ค์Œ์€ ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ์‹œ ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์„ฑํ•œ ์˜ˆ์‹œ์ด๋‹ค. ์  ํ‚จ์Šค + ๋„์ปค๋ฅผ ์ด์šฉํ•ด ์  ํ‚จ์Šค ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค์—ˆ๊ณ  ๊ทธ ์•ˆ์—์„œ ๋„์ปค๋ฅผ ์‚ฌ์šฉํ•˜..

๐Ÿ’ป BackEnd 2023.11.08

๐ŸŸข [ SpringBoot ] [ AWS EC2 ] EC2 ์„œ๋ฒ„์— Spring Boot ํ”„๋กœ์ ํŠธ ๋ฐฐํฌ

EC2 ์„œ๋ฒ„์— Spring Boot ํ”„๋กœ์ ํŠธ ๋ฐฐํฌ SpringBoot 3.1.3 / Maven ์ผ๋‹จ EC2 ์„œ๋ฒ„์— pem์„ ๋“ฑ๋กํ•˜์—ฌ winscp ๋กœ ์ ‘์†ํ•œ๋‹ค. ์„œ๋ฒ„์— ์ ‘์†ํ•˜๊ณ  ์ž์‹ ์ด ์›ํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ Git์—์„œ ๊ฐ€์ ธ์˜ค๋„๋ก ํ•œ๋‹ค. $ cd ./home/ubuntu - ์ž์‹ ์ด ์›ํ•˜๋Š” ํ”„๋กœ์ ํŠธ ํด๋”๋กœ ์ด๋™ $ git clone $ cd /project/ - Git์—์„œ ๋ฐ›์•„์˜จ ํŒŒ์ผ์•ˆ์— mvnw ํŒŒ์ผ์„ ์ฐพ๊ธฐ ํด๋”์•ˆ์—์„œ mvnw ํŒŒ์ผ์„ ์ฐพ๋Š”๋‹ค. Maven์€ Mvnw / Gradle์€ ๋‹ค๋ฅธ ํŒŒ์ผ์ด ์กด์žฌํ•  ๊ฒƒ์ด๋‹ค. $ chmod +x mvnw $ ./mvnw package -DskipTests=true : ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์—†์ด ์‹คํ–‰ $ ./mvnw clean package ์ด๋ ‡๊ฒŒ ์‹คํ–‰ํ•˜๊ฒŒ ๋˜๋ฉด target ํŒŒ์ผ์ด ์ƒ๊ธฐ๊ฒŒ ..

๐ŸŸข [SpringBoot] ์ดํด๋ฆฝ์Šค(Eclipse) ์„œ๋ฒ„ ์žฌ๊ฐ€๋™ ํ•˜์ง€ ์•Š๊ณ  ๋ฐ˜์˜ํ•˜๊ธฐ

๐Ÿšฉ SpringBoot ์„œ๋ฒ„ ์žฌ๊ฐ€๋™ ํ•˜์ง€ ์•Š๊ณ  ๋ฐ˜์˜ํ•˜๊ธฐ 1. Eclipse์˜ Project > Build Automatically ๋ฅผ ์ฒดํฌ ํ•ด์ค€๋‹ค.2. dev-tools๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. - application.properties spring.devtools.livereload.enabled=true spring.devtools.restart.enabled=true application.properties์— ์ถ”๊ฐ€๋ฅผ ํ•ด์ฃผ๊ณ  pom.xml์— dev-tools ์˜์กด์„ฑ์„ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค.

๐ŸŸข [SpringBoot] [Mybatis] Mybatis Log ์„ค์ •

๐Ÿšฉ Mybatis Log ์„ค์ • Mybatis๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ ๊ฐœ๋ฐœํ•˜๋‹ค ๋ณด๋ฉด SQL์ด ์–ด๋–ป๊ฒŒ ๋Œ์•„๊ฐ€๋Š”์ง€ ์•Œ์•„์•ผ ํ•  ๋•Œ๊ฐ€ ์žˆ๋‹ค. SQL์˜ WHERE์ ˆ์—์„œ if ์กฐ๊ฑด์„ ํ™•์ธํ•˜๊ณ  ์‹ถ์–ด ๋กœ๊ทธ๋ฅผ ์ฐพ์•„๋ณด๋‹ค๊ฐ€ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. 1. Pom.xml ์˜์กด์„ฑ ์ถ”๊ฐ€ org.bgee.log4jdbc-log4j2 log4jdbc-log4j2-jdbc4.1 1.16 ๋จผ์ € pom.xml์— ์˜์กด์„ฑ์„ ์ถ”๊ฐ€ํ•ด์ค˜์•ผ ํ•œ๋‹ค. ์™œ์ธ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ๋Š”๋ฐ 4๊ฐ€ ๋˜๋Š” ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ๊ณ  4.1์ด ๋˜๋Š” ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ๋‹ค. ์ด๊ฒƒ์„ ์ž์‹ ์˜ ํ”„๋กœ์ ํŠธ์— ๋งž๋Š” ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋„๋ก ํ•œ๋‹ค. 2. Application.properties spring.datasource.driver-class-name=net.sf.log4jdbc.sql.jdbcapi.DriverSpy..

๐ŸŸข [Spring] [Project] ํ•ญ๊ณต๊ถŒ ์˜ˆ์•ฝ ์‹œ์Šคํ…œ

๐Ÿ“‘ ํ•ญ๊ณต๊ถŒ ์˜ˆ์•ฝ ์‹œ์Šคํ…œ ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„ : 2023-07-17 ~ 2023-07-28 ๐Ÿ“‹ Spring MVC Projcet ๊ฐœ๋ฐœ ํ™˜๊ฒฝ โœ… UI ์–ธ์–ด ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ : HTML / CSS / JavaScript / JSP / jQuery โœ… Language : JDK 8 / Spring Framework 4.3.9 / MyBatis / Maven โœ… Infra : Apache Tomcat v9.0 / Oracle DataBasse 11g XE โœ… Configuration : Github / ERD Cloud / Notion Spring MVC Project ๋ฅผ ํ•˜๋ฉฐ ์‚ฌ์šฉํ•œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์ž…๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ๋กœ View ๋‹จ์— ๋ณด์—ฌ์ฃผ๋Š” ํ™”๋ฉด์€ Jsp ์™€ jQuery๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋น„๋™๊ธฐ ์š”์ฒญ ์ฒ˜๋ฆฌ ๋ฐ ๋™์  ์›นํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค์—ˆ..

๐ŸŸข [Spring] @Pattern ์‚ฌ์šฉํ•˜๊ธฐ

๐Ÿšฉ Spring์—์„œ ๊ฒ€์ฆ ์–ด๋…ธํ…Œ์ด์…˜ ์‚ฌ์šฉํ•˜๊ธฐ org.hibernate hibernate-validator-annotation-processor 4.1.0.Final javax.validation validation-api 1.0.0.GA javax.xml.bind jaxb-api 2.3.0 pom.xml ์— ์œ„์˜ ์˜์กด์„ฑ์„ ์ฃผ์ž…ํ•ด์ค€๋‹ค. ๋ฒ„์ „์€ ์ž์‹ ์˜ ํ”„๋กœ์ ํŠธ์— ๋งž๊ฒŒ๋” ์ˆ˜์ •ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

๐ŸŸข [Spring] @RequiredArgsConstructor ์ƒ์„ฑ์ž ์ฃผ์ž…

๐Ÿšฉ @RequiredArgsConstructor ์ƒ์„ฑ์ž ์ฃผ์ž… ์•ž์„œ ์˜์กด์„ฑ ์ฃผ์ž…์— ๋Œ€ํ•ด ํฌ์ŠคํŒ…์„ ํ–ˆ์—ˆ๋‹ค. ์˜์กด์„ฑ ์ฃผ์ž…์€ ํฌ๊ฒŒ 3๊ฐ€์ง€๊ฐ€ ์žˆ๋Š”๋ฐ ๊ทธ ์ค‘ ์ƒ์„ฑ์ž ์ฃผ์ž…์„ ์‚ฌ์šฉ์„ ํ•ด์•ผํ•œ๋‹ค๊ณ  ์ด์ „์— ์„ค๋ช…์„ ํ–ˆ๋‹ค. ๊ทธ ๋•Œ ์„ค๋ช…ํ•  ๋‹น์‹œ์—๋Š” @Autowired ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•ด์„œ ๋ชจ๋“  ์ƒ์„ฑ์ž์— ์ถ”๊ฐ€๋ฅผ ํ•ด์ฃผ๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์˜€์œผ๋‚˜ Lombok์„ ์‚ฌ์šฉํ•˜๋ฉด ์ฝ”๋“œ๊ฐ€ ๋” ๊น”๋”ํ•˜๊ณ  ๊ฐ„๊ฒฐํ•ด์ง„๋‹ค. https://dev-wnstjd.tistory.com/447 ๐ŸŸข [Spring] ์Šคํ”„๋ง ์˜์กด์„ฑ ์ฃผ์ž…(DI) - [1] ๐Ÿšฉ ์˜์กด์„ฑ ์ฃผ์ž…์˜ ๊ฐœ๋…๊ณผ ํ•„์š”์„ฑ [ ์˜์กด์„ฑ ์ฃผ์ž…์ด๋ž€โ“] Spring ํ”„๋ ˆ์ž„์›Œํฌ๋Š” 3๊ฐ€์ง€ ํ•ต์‹ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ชจ๋ธ์„ ์ง€์›ํ•˜๊ณ  ์žˆ๋‹ค. ๊ทธ ์ค‘ ํ•˜๋‚˜๋‹ค ์˜์กด์„ฑ ์ฃผ์ž…(Dependency Injection, DI) ์ด๋‹ค. DI๋Š” ์™ธ๋ถ€์—์„œ ..

๐ŸŸข [Spring] Eclipse ์Šคํ”„๋ง(Spring) ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

๐Ÿšฉ ์Šคํ”„๋ง ํ”„๋ ˆ์ž„ ์›Œํฌ ์Šคํ”„๋ง์€ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์–ด๋ ค์šด ๋ฉด์ด ์žˆ๋‹ค. ์„ค์ • ํŒŒ์ผ๋„ ๋งŽ๊ณ  ์ž๋ฐ” ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋„ ์„ค์ •ํ•ด์ค˜์•ผํ•˜๊ณ  ์ฒ˜์Œ ์‹œ์ž‘ํ•˜๊ธฐ์—๋Š” ์–ด๋ ต์ง€๋งŒ ๊ทธ๋งŒํผ ๋งŽ์ด ์“ฐ์ด๊ณ  ์•„์ง๊นŒ์ง€ ์šฐ๋ฆฌ๋‚˜๋ผ์—์„œ๋Š” ์ž๋ฐ”๊ณตํ™”๊ตญ์ด๋ผ๋Š” ๋ง์ด ์žˆ์–ด ๊ผญ ๋ฐฐ์›Œ์•ผ ํ•  ํ”„๋ ˆ์ž„์›Œํฌ๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ์˜ค๋Š˜์€ Eclipse๋ฅผ ํ†ตํ•ด ์Šคํ”„๋ง ํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ์•ž์„œ ๋งํ•œ ์ž๋ฐ” ์„ค์ •์€ ๋‹ค ๋˜์–ด ์žˆ๋‹ค๋Š” ๊ฐ€์ • ํ•˜์— ์„ค๋ช…์„ ์ง„ํ–‰ํ•˜๋„๋ก ํ•  ๊ฒƒ์ด๋‹ค. ๐Ÿšฉ ์Šคํ”„๋ง ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ์ผ๋‹จ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ์„ ์œ„ํ•ด Eclipse๋ฅผ ์ผœ๊ณ  ์™ผ์ชฝ ๋งจ ์œ„์— ์žˆ๋Š” File -> New -> Spring Legacy Project ๋ฅผ ์„ ํƒํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Project name์— ์ž์‹ ์ด ์›ํ•˜๋Š” ํ”„๋กœ์ ํŠธ ์ด๋ฆ„์„ ๋„ฃ๋Š”๋‹ค. ์•„๋ž˜์˜ Templates์—์„œ๋Š” Spring ..