ํ์ฌ ๋ฃ๊ณ ์๋ ๊ฐ์์ธ ํด์ปค์ค HRD์ "๊ฐ์ฅ ์ฝ๊ฒ ๋ฐฐ์ฐ๋ AWS, ๊ธฐ์ด๋ถํฐ ์ค๋ฌด๊น์ง"์์ AWS S3 ์ค์ต ํํธ๊ฐ ์์ด์ ๊ธฐ๋ก์ ํด๋์ผ๋ ค๊ณ ํ๋ค. Lambda ๋์ ๋ง์ฐฌ๊ฐ์ง๋ก, ํน์ง ๋ฐ ์ฅ๋จ์ ์ ๋์ค์ ํฌ์คํ
์ ํ๋๋ก ํ๊ฒ ๋ค. ์ผ๋จ S3๋ ์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง๋ก, ๋ฐ์ดํฐ์ ๋ํ ์ ๋ณด์ธ ๋ฉํ๋ฐ์ดํฐ๊ฐ ์กด์ฌํ๊ณ , ๋ฐ์ดํฐ๊ฐ ๊ฐ์ฒด๋ก ์ ์ฅ๋๋ค๋ ํฐ ํน์ง์ด ์๋ค๋ ๊ฒ์ ์์๋์. ์ฐ์ AWS์ ๋ก๊ทธ์ธ ํ, S3 ์๋น์ค๋ฅผ ๊ฒ์ํด์ S3 ํ์ด์ง์ ๋ค์ด๊ฐ๋ค. S3 ๊ตฌ์ถ ์ค์ตํ๊ธฐ 1. ๋ฒํท ๋ง๋ค๊ธฐ - aws-yoon-bucket ์ด๋ฆ์ผ๋ก ๋ฒํท์ ๋ง๋ค์ด๋ณด์ - ํด๋ผ์ฐ๋ ์๋น์ค๊ฐ ํผ๋ธ๋ฆญ ์๋น์ค์ด๊ธด ํ์ง๋ง ๋ณด์์์ ์ด์ ๋ก ์ต์ํ์ ์ก์ธ์ค ๊ถํ๋ง ์ฃผ๋ ๊ฒ์ด ๊ด๋ก์ด๋ค. - ๊ธฐ๋ณธ์ ์ผ๋ก๋ ์ธ๋ถ์์ ์ ์์ด ๋ถ๊ฐ๋ฅํ๊ฒ ์ค์ ํ๊ณ , ๋ถ๊ฐํผํ๊ฒ ..
์ ์ฒด ๊ธ
๐ฉ๐ป๐ป ๊ณ ์ ์ฑ์ฅ์ ๊ฟ๊พธ๋ ๋น์ ๊ณต์ ์ด๋ณด ๊ฐ๋ฐ์์ IT ๊ด๋ จ ์ง์์ ์ฝ๊ฒ ํ์ด ์ ์ ๋ธ๋ก๊ทธ์ ๋๋ค.ํ์ฌ ํด์ปค์ค HRD์ "๊ฐ์ฅ ์ฝ๊ฒ ๋ฐฐ์ฐ๋ AWS, ๊ธฐ์ด๋ถํฐ ์ค๋ฌด๊น์ง" ์ธ๊ฐ์ ๋ฃ๊ณ ์๋๋ฐ, Lambda ์ค์ต ๋ถ๋ถ์ด ์์ด์ ๊ธฐ๋ก์ ํด๋์ผ๋ ค๊ณ ํ๋ค. AWS Lambda๋ ์ด๋ฒคํธ ๊ธฐ๋ฐ ์๋ฒ๋ฆฌ์ค ์ปดํจํ
์๋น์ค ์ด๋ค. ์ด๊ฑด ๋ญ๋. ์๋ฒ๋ ์ปจํ
์ด๋ ์์ด (๊ธฐ์กด EC2 ๋ ECS ๋ฐฉ์์ด ์๋) ์ฝ๋[ํจ์]๋จ์๋ก ์คํ์ด ๊ฐ๋ฅํ ์ปดํจํ
์๋น์ค ์ด๋ค. ์๋์ ์ผ๋ก ๊ฐ๋ณ๊ณ , ์ค๋ ์ฒ๋ฆฌ ์๊ฐ์ด ๊ฑธ๋ฆฌ์ง ์๋ ๊ฐ๋จํ ์๋น์ค๋ค์ ์ฒ๋ฆฌํ ๋ ์ ์ฉํ๊ฒ ์ฐ์ธ๋ค. ์คํ์๊ฐ ๋ณ ๊ณผ๊ธ์ด ํน์ง์ด๋ค. AWS Lambda์ ํน์ง๊ณผ ์ฅ,๋จ์ ์ ๋ค์์ ๋ ์์ธํ ์ดํด๋ณด๊ธฐ๋ก ํ๊ณ , ๋
๋ค ์ค์ต์ ํด๋ณด๊ฒ ๋ค. ์ค์ตํ๊ธฐ AWS์ ๋ก๊ทธ์ธ ํ, Lambda๋ฅผ ๊ฒ์ํด์ ํด๋น ํ๋ฉด์ ๋์ด๋ค. ๋๋ค๋ฅผ ๋ง๋ค์ด ๋์ ์ ์ด ์๊ธฐ ๋๋ฌธ์ ์ฒซ ํ๋ฉด์ ์ด๋ ๊ฒ ์๊ฒผ๋ค. 1. ํจ..
์ค๋์ ๊ฐ์ ํ๋๋ฅผ ์๊ฐ ์์ผ์ฃผ๋ ค๊ณ ์์ต๋๋น! ๋ฐ๋ก๋ฐ๋ก~ ํด์ปค์ค HRD ์ ์๋ ๊ฐ์ข์
๋๋ค~! ์ด ๊ฐ์ข๋ฅผ ์ ํํ ์ด์ 1. ํํํ ๊ฐ์ ๋ชฉ์ฐจ -> ์์ ์ ๊ธฐ์ด๋ถํฐ ์ค์ต๊น์ง ํ๋ฒ์ ํด๊ฒฐ ๊ฐ๋ฅ! 2. ํ์ง ๊ฐ๋ฐ์ ์ ์๋ -> ์ค๋ฌด์์ ์์
ํ๋ ๋ด์ฉ ์์ฃผ! 3. ํ๋ถํ ๋ด์ฉ์ ํ์ต์๋ฃ ๊ทธ๋์ ๋๋ถ์ ๋๋ฆ ๊ฐ๋
์ ์ ์ ๋จ์ด๋ก ์ ๋ฆฌ๋ฅผ ํด๊ฐ๋ฉด์ ๊ณต๋ถํ๊ธฐ๊ฐ ํจ์ฌ ์์ ํ์ต๋๋ค! ์ด๋ฐ์์ผ๋ก ์ค์ต ๊ฐ์๋ฅผ ๋ณด๋ฉฐ ๋ฐ๋ผํ๋ฉด ์๋ฌด ์ด๋ ค์ ์์ด ์์ํ ์ ์์ต๋๋ค!ใ
ใ
์ด๋ ต๊ฒ๋ง ๋๊ปด์ก๋ AWS์ ํ๋ฐ ๋ ๊ฐ๊น์์ง ๊ฒ ๊ฐ์ต๋๋น ใ
ใ
ํด์ปค์ค HRD์ ๊ฐ์ข ๊ฐ์ถ!!
์ต๊ทผ ํฌํด์ฉ์ผ๋ก ์คํ๋ง์ผ ํ๋ซํผ์ ์ฃผ์ ๋ก ํ๋ก์ ํธ๋ฅผ ํ๋ ํ๋๋ฐ, ๊ฒ์ ๊ธฐ๋ฅ์ด ๋น ์ ธ์์ด์ ์ด๋ฒ์ ๊ตฌํํ๋ ค๊ณ ํ๋ค ๊ฒ์ ๊ธฐ๋ฅ ๊ตฌํ์ ํ๋ ค๊ณ ์ฌ๊ธฐ์ ๊ธฐ ์์น๋ฅผ ํด๋ณธ ๊ฒฐ๊ณผ ELK์คํ์ ๋ฐ๋ก ์ ์ฉํ ๊น?ํ๋ค๊ฐ ์์ฆ ์์์๋ ์ฝํ
๋ ์คํฐ๋๋ ํ ๊ฒ ๋๋ฌด ๋ง๊ธฐ๋ ํ๊ณ , ์ฐ์ ์ ์ผ๋ก ์ํ ๊ฒ์ ๋ฑ ํ ๊ธฐ๋ฅ์๋ง ์ธ๊ฑด๋ฐ ๋๋ฌด ์ค๋ฒ์คํ์ด์ง ์๋ ์ถ์ด์ apache lucence ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ์ ธ๋ค๊ฐ ์จ๋ณผ ์์ ์ด๋ค.
* ์กฐ์ธ ํฌ์ธํธ(Join point) ์ด๋๋ฐ์ด์ค๊ฐ ์ ์ฉ๋ ์ ์๋ ์์น, ๋ฉ์๋ ์คํ, ์์ฑ์ ํธ์ถ, ํ๋ ๊ฐ ์ ๊ทผ, static ๋ฉ์๋ ์ ๊ทผ ๊ฐ์ ํ๋ก ๊ทธ๋จ ์คํ ์ค ์ง์ ์กฐ์ธ ํฌ์ธํธ๋ ์ถ์์ ์ธ ๊ฐ๋
์ด๋ค. AOP๋ฅผ ์ ์ฉํ ์ ์๋ ๋ชจ๋ ์ง์ ์ด๋ผ ์๊ฐํ๋ฉด ๋๋ค. ์คํ๋ง AOP๋ ํ๋ก์ ๋ฐฉ์์ ์ฌ์ฉํ๋ฏ๋ก ์กฐ์ธ ํฌ์ธํธ๋ ํญ์ ๋ฉ์๋ ์คํ ์ง์ ์ผ๋ก ์ ํ๋๋ค. * ํฌ์ธํธ์ปท(Pointcut) ์กฐ์ธ ํฌ์ธํธ ์ค์์ ์ด๋๋ฐ์ด์ค๊ฐ ์ ์ฉ๋ ์์น๋ฅผ ์ ๋ณํ๋ ๊ธฐ๋ฅ ์ฃผ๋ก AspectJ ํํ์์ ์ฌ์ฉํด์ ์ง์ ํ๋ก์๋ฅผ ์ฌ์ฉํ๋ ์คํ๋ง AOP๋ ๋ฉ์๋ ์คํ ์ง์ ๋ง ํฌ์ธํธ์ปท์ผ๋ก ์ ๋ณ ๊ฐ๋ฅ * ํ์ผ(Target) ์ด๋๋ฐ์ด์ค๋ฅผ ๋ฐ๋ ๊ฐ์ฒด, ํฌ์ธํธ์ปท์ผ๋ก ๊ฒฐ์ * ์ด๋๋ฐ์ด์ค(Advice) ๋ถ๊ฐ ๊ธฐ๋ฅ ํน์ ์กฐ์ธ ํฌ์ธํธ์์ Aspect์ ์ํด..
0. ์ปฌ๋ ์
์ปฌ๋ ์
์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋ฃนํํ๊ณ ์ฒ๋ฆฌํ๋ ํน์ง์ ์ด๋ ค sql ์ง์์ ๊ฐ์ด ๋น์ทํ๊ฒ ๋ง๋ค ์ ์๋ค. → ์ ์ธํ ์ด์ ๊ฐ์ด ๋ง์ ์์๋ฅผ ํฌํจํ๋ ์ปค๋ค๋ ์ปฌ๋ ์
์ ๋ณ๋ ฌ ์ฒ๋ฆฌ ์ฝ๋๊ฐ ํ์ํ๋ค. ⇒ ์คํธ๋ฆผ์ด ํด๊ฒฐ์ฑ
! 1. ์คํธ๋ฆผ ์๊ฐ ์๋ฐ 8์์ ์ถ๊ฐ๋ ๊ธฐ๋ฅ ์ ์ธํ์ผ๋ก ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๊ฐ๋ฅ ๋ฉํฐ์ค๋ ๋ ์ฝ๋ ๊ตฌํ ์์ด ๋ณ๋ ฌ๋ก ํฌ๋ช
ํ๊ฒ ์ฒ๋ฆฌ ๊ฐ๋ฅ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๊ณผ์ ์ ๋ณ๋ ฌํํ๋ฉด์ ์ค๋ ๋์ ๋ฝ์ ๊ฑฑ์ ํ ํ์๊ฐ ์์ ์คํธ๋ฆผ ์ ์ฉ ์ ์ ์๋ฐ 7์ฝ๋ List lowCaloricDishes = new ArrayList(); for(Dish dish: menu) { // ๋์ ์๋ก ์์ ํํฐ๋ง if(dish.getCalories() < 400) { lowCaloricDishes.add(dish); } } // ์ต๋ช
ํด๋์ค๋ก..
์ด๊ฑด ๋ด๊ฐ ๊ฒฝํํ ํธ๋ฌ๋ธ์ ์๋๊ณ ์ฐ๋ฆฌ ์คํฐ๋์์ด ๊ฒช์ ์๋ฌ๋ฅผ ๊ฐ์ด ํด๊ฒฐํด๋ดค๋ค. ์ฌ๋ฐ์์ด์ ํฌ์คํ
. spring data jpa + spring boot 3.2.0 + h2 2.2.224 + querydsl 5.0.0 ํ๊ฒฝ๊ตฌ์ฑ์ด๋ค. ์ ์ h2DB๋ฅผ 1.4.๋ช์ผ๋ก ๊น์๋จ์๋ค๊ณ ํ๋ค. ์ผ๋จ DB๋ ๋ค ์ญ์ ํ๊ณ ๋ค์ ๋ฒ์ ์ ๋ง๋ ๊ฑธ ์ค์นํ๋๋ฐ๋ Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Column "start_value" not found [42122-224] org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' d..
๋๋ค ํํ์ 3.1 ๋๋ค๋ ๋ฌด์์ธ๊ฐ? ๋ฉ์๋๋ก ์ ๋ฌํ ์ ์๋ ์ต๋ช
ํจ์๋ฅผ ๋จ์ํํ ๊ฒ [ํน์ง] ์ต๋ช
๋ณดํต์ ๋ฉ์๋์ ๋ฌ๋ฆฌ ์ด๋ฆ์ด ์์ผ๋ฏ๋ก ์ต๋ช
์ด๋ผ ํํํ๋ค. ํจ์ ๋๋ค๋ ๋ฉ์๋์ฒ๋ผ ํน์ ํด๋์ค์ ์ข
์๋์ง ์์ผ๋ฏ๋ก ํจ์๋ผ๊ณ ๋ถ๋ฅธ๋ค. ํ์ง๋ง ๋ฉ์๋์ฒ๋ผ ํ๋ผ๋ฏธํฐ ๋ฆฌ์คํธ, ๋ฐ๋, ๋ฐํ ํ์, ๊ฐ๋ฅํ ์์ธ ๋ฆฌ์คํธ๋ฅผ ํฌํจํ๋ค. ์ ๋ฌ ๋๋ค ํํ์์ ๋ฉ์๋ ์ธ์๋ก ์ ๋ฌํ๊ฑฐ๋ ๋ณ์๋ก ์ ์ฅํ ์ ์๋ค. ๊ฐ๊ฒฐ์ฑ ์ต๋ช
ํด๋์ค์ฒ๋ผ ๋ง์ ์์ง๊ตฌ๋ ํ ์ฝ๋๋ฅผ ๊ตฌํํ ํ์๊ฐ ์๋ค. ๋๋ค๋ฅผ ํ์ฉํ์ฌ ๋ฐ๊พผ ์ฝ๋ Comparator byWeight = new Comparator() { public int compare(Apple a1, Apple a2) { return a1.getWeight().compareTo(a2.getWeight()..
๊น์ํ ์ ์๋ ์๋ฐ ์ฝ๋๋ฅผ ์คํ๋ง๋ถํธ 3.1.5๋ก ์
๊ธํ๋ฉด์ ๋ฐ์ํ ๋ฌธ์ . gradle ๋ฒ์ ์ถฉ๋ ๋ฌธ์ ๋ค ํ๋ก์ ํธ ์ด๋ฆ/gradle/wrapper/gradle-wrapper.properties distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip ์ด๊ฑฐ๋ฅผ distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip 7.2 -> 7.6 ๋ณ๊ฒฝ ํ gradle ๋ค์ ์๋ก ๊ณ ์นจํ๋ฉด ์๋๋ค.
flyweight pattern 1. Flyweight Fly(๊ฐ๋ฒผ์ด) + Weight(๋ฌด๊ฒ)๋ฅผ ๋ปํ๋ฉฐ, ๋ณต์ฑ์ ์ฒด๊ธ์์ ์ ๋๋์๋ค. ๋ชจ๋ ๊ฐ์ฒด๋ฅผ ์ผ์ผํ ์ธ์คํด์คํ ํ์ง์๊ณ ์ฌ์ฌ์ฉํ ์ ์๋ ๊ฐ์ฒด๋ ์ฌ์ฌ์ฉํจ์ผ๋ก์จ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฐ๋ณ๊ฒ ๋ง๋ ๋ค๋ ์๋ฏธ๋ก์ ์ฐ์ธ๋ค๊ณ ๋ณด๋ฉด ๋๋ค. ⇒ ๊ฐ๋ณ๊ฒ ๋ง๋ ๋ค! ๊ณต์ ๋ ์์๊ณผ ๊ทธ๋ ์ง ์์ ์์์ ์ฌ์ฉ๋ ์ฐจ์ด 2. Flyweight ํจํด ๊ตฌ์กฐ Flyweight : ๊ฒฝ๋ ๊ฐ์ฒด๋ฅผ ๋ฌถ๋ ์ธํฐํ์ด์ค ConcreteFlyweight : ๊ณต์ ๊ฐ๋ฅํ์ฌ ์ฌ์ฌ์ฉ๋๋ ๊ฐ์ฒด(intrinsic state) UnsahredConcreteFlyweight: ๊ณต์ ๋ถ๊ฐ๋ฅํ ๊ฐ์ฒด (extrinsic state) FlyweightFactory : ๊ฒฝ๋ ๊ฐ์ฒด๋ฅผ ๋ง๋๋ ๊ณต์ฅ ์ญํ ๊ณผ ์บ์ ์ญํ ์ ๊ฒธ๋นํ๋ Flywei..