๊ฐ์๊ธฐ ํ์๋คํํ
ํ
์คํธ ์๋ฒ๊ฐ ์ ์์ด ์๋๋ค๊ณ ์ฐ๋ฝ์ด ์๋ค. ๋ถ๋ช
์ด์ ๋ ๋ฐฐํฌ workflow๊ฐ ๋์ํ๊ณ ์ ์ ์๋ํ๋ ๊ฒ์ ํ์ธํ๊ธฐ ๋๋ฌธ์ ์ด์ํด์ ๋ก๊ทธ๋ฅผ ํ์ธํ๋๋, ์ฒ์ ๋ณด๋ ๋ก๊ทธ๊ฐ ์์๋ค. ํ์ธํด๋ณด์.Caused by: org.redisson.client.RedisAuthRequiredException: NOAUTH Authentication required. NOAUTH Authentication required. ๋NOAUTH Authentication required๋ ๋น๋ฐ๋ฒํธ๊ฐ ์ค์ ๋์ด ์์์๋ AUTH ์ค์ ์ด ์๋์์ด์ ๋ฐ์ํ๋ ์๋ฌ์ด๊ธฐ๋ ํ๋ค. ์ด๋ฅผ ํ์ธํ๋ ค๋ฉด redis-cli์ ์ ์ํด๋ณด์. ํ์๋ Docker container๋ก redis๋ฅผ ๊ด๋ฆฌํ๊ณ ์์ผ๋ฏ๋ก ์กฐ๊ธ ๋ค๋ฅธ ๋ช
๋ น์ด๋ฅผ ์ฌ..
Nginx๋ ํ๋ก ํธ๋ถํฐ ๋ฐฑ์๋๊น์ง ํ๋ก์ ํธ๋ฅผ ๋ฐฐํฌ ๋ฐ ์ด์ํ๋ ค๋ฉด ๊ผญ ๊ณ ์ณ์ผํ ๊ด๋ฌธ์ฒ๋ผ ํ๋๋ผ๊ณ ์๊ฐํ๋ค. ํ์ง๋ง ์ฒ์ ์ ํ๋ฉด ์๊น๋ ์๋ ํฐ๋ฏธ๋์์ ๊ธ์ ํ๋๋ง ํ๋ ค๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ณ ์์ธ์ ์ฐพ๋ ๊ฒ๋ ๊ต์ฅํ ์ด๋ ค์ ๊ณจ๋จธ๋ฆฌ๋ฅผ ์๊ณคํ๋ค. ๋ฌผ๋ก ์ฌ์ด ๋ฐฉ๋ฒ๋ง์ด ๋ฅ์ฌ๋ ์๋์ง๋ง, ๊ธฐ์ ์ ์ญ๋์ด๋ ์ํคํ
์ฒ์ ๊ณต์ ๋ค์ฌ์ผํ๋ ๋ถ๋ถ์ด ์๋๋ค๋ณด๋ ์ธ์ธํ ์ธํ๋ผ ์ค์ ์ ์๊ฐ์ ๋ค์ด๋ ๊ฒ ๋ณด๋ค ์ดํ๋ฆฌ์ผ์ด์
๋จ์์ ๊ธฐ์ ์ ์ฑ๋ฆฐ์ง์ ์๊ฐ์ ์๋๊ฒ ๋ ๋ซ๋ค๊ณ ๋ณธ๋ค. Nginx Proxy Manager ๋Nginx Proxy Manager๋ Nginx๋ฅผ Web console๊ธฐ๋ฐ์ผ๋ก ๊ด๋ฆฌ ๊ฐ๋ฅํ GUI ์คํ์์ค์ด๋ค. ๊ฝค ๋ง์ ์ ์ฆ์ผ์ด์ค๋ฅผ ์ปค๋ฒ ๊ฐ๋ฅํ๋ฐ, ๋จ์ ์๋ฒ ํ๋ก์ (๋ผ์ฐํ
)๋ถํฐ ์ ์ ํ์ผ ํธ์คํ
๊น์ง ๊ฐ๋ฅํ๋ค. ๐จ ์ ์ ํ..
์ต๊ทผ ํ์ฌ ์
๋ฌด ๊ณต๋ถ๋ฅผ ์ํด์๋ ๋ก์ฐ๋ ๋ฐธ ๊ธฐ์ (์ด๋ผํ์ง๋ง ํํ๋ค ๋ ๊ฑฐ์๋ผ๊ณ ๋ถ๋ฅด๋ ๊ธฐ์ )๋ค์ ๊ณต๋ถํ๊ณ ์ฌ์ด๋ ํ๋ก์ ํธ๋ ์ต์ ๊ธฐ์ ๋ฐ ๋ฒ์ ์ ์ฌ์ฉํ๋ค ๋ณด๋, ๋ฒ์ ๋ ๊ด๋ฆฌ ์คํจ๋ก ๋ฐ์ํ ์ค๋ฅ์๋ค. ์์ธ์ฟผ๋ฆฌ๋ฅผ ๋ ๋ฆฌ๋ ๊ณผ์ ์์ SSLHanndshakeException์ผ๋ก ์ธํด DB Connection ํ๋์ ์คํจํด conn์ด null์ธ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.The last packet successfully received from the server was 65 milliseconds ago. The last packet sent successfully to the server was 61 milliseconds ago. at java.base/jdk.internal.reflect.NativeConstructo..
์๋ก ์ถ๊ฐ๋ ๊ธฐ๋ฅ๋ค์ด ์์ด์, ์ค๋๋ง์ ํตํฉ ํ
์คํธ๋ฅผ ์ถ๊ฐํ๊ณ ์คํํ๋๋ฐ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. ์คํ๋ง ์ดํ๋ฆฌ์ผ์ด์
์์ฒด ์คํ์๋ ๋ฌธ์ ๊ฐ ์๊ณ ํ
์คํธ๋ ์ ์์ ์ผ๋ก ์คํ๋์ง๋ง, ํ
์คํธ ๋ก๊ทธ์๋ ์์ฒญ๋ ์์ ์๋ฌ ๋ก๊ทธ๊ฐ ๋จ๊ณ Build ๊ฒฐ๊ณผ์๋ ์๋ฌ๊ฐ ๊ฐ๋ํ๋ค. ํธ๋ฌ๋ธ ์ํ
ํ์ ๋ถ์ ์๋ฌ ๋ก๊ทธ๊ฐ ์์ฒญ๋๊ฒ ๊ธธ์ง๋ง ๊ฒฐ๊ตญ ์๋ ๋ก๊ทธ๊ฐ ๋ฐ๋ณต๋๊ณ ์์๋ค. java.lang.instrument.IllegalClassFormatException: Error while instrumenting sun/security/ec/SunEC$1 with JaCoCo 0.8.8.202204050719/5dcf34a. at org.jacoco.agent.rt.internal_b6258fc.CoverageTransformer.transfo..
@DataJpaTest๋ฅผ ์ด์ฉํ Repository ํ
์คํธ ์ค ๋ณธ ์ดํ๋ฆฌ์ผ์ด์
์คํ์์ ๋ฐ์ํ์ง ์๋ DDL์์ ์์ธ๊ฐ ๋ฐ์ํ๋ค. H2 ↔๏ธ MySQL ๋ฌธ๋ฒ ์ฐจ์ด๋ก ์ธํด ํ
์ด๋ธ์ด ์ ๋๋ก ์์ฑ๋์ง ์๋ ๊ฒ์ผ๋ก ๋ณด์ฌ์ application-test.properties ๋ฅผ ๊ณ์ ์์ ํ์ง๋ง ํด๊ฒฐ๋์ง ์์๋ค. ๋ฌธ๋, ์ง๋ ๋ฒ์๋ @DataJpaTest ํ
์คํธ์์ ๋ฐ์ํ๋ ์๋ฌ๋ฅผ @AutoConfigureTestDatabase์ผ๋ก ํด๊ฒฐํ ๊ธฐ์ต์ด๋์ ์๋ํ์๊ณ ํด๊ฒฐ๋์๋ค. ๊ทธ๋๋ ๋๋ฒ๊น
๊ณผ์ ๊ธฐ๋ก์ ๋ฏธ๋ค๋๊ณ ์์๋๋ฐ, ์ด ์ฐธ์ ๋ธ๋ก๊น
ํ๊ณ ์ฅ๊ธฐ ๊ธฐ์ต์ผ๋ก ๊ฐ๋ณด์. ๋ฌธ์ ๋ถ์ ์๋ํ ๋๋ง๋ค ๋ค์ํ ์์ธ๊ฐ ๋ฐ์ํ๊ณ ์ธํฐ๋ท์๋ ๋ค์ํ ์์ธ ์ผ์ด์ค๊ฐ ์๋๋ฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค์ ๋ฌธ์ ์ด๊ฑฐ๋ DDL ํน์ SQL ๋ฌธ๋ฒ ์ค๋ฅ๋ค. ๊ณตํต์ ..
์๋ง ๋ฉํ ๋๊ณผ ๋ฐฐํฌ DB์ ๋ฐ์ดํฐ๋ฅผ ์ง์ ์์ ํ๋ ์ผ์ ๋ํด ์ด์ผ๊ธฐํ๋ ๋์ค์ ํฐ๋ฏธ๋์ ์ผ๋ ๋๋ฅผ ๋ณด๊ณ ๊น์ง ๋๋ผ๋ฉฐ ํฐ๋ฏธ๋๋ก ๊ด๋ฆฌ๋ฅผ ํ๊ณ ์๋๊ณ ๋ฌผ์๋ ๊ฒ์ด ์์ง๋ ๊ธฐ์ต๋๋ค. ์ปฌ๋ผ๋ช
์กฐ์ฐจ๋ ์ ๋๋ก ๋ณด์ด์ง ์๋ mysql cli๋ฅผ ์ผ๋ ์ด์ ๋ฅผ ์๊ฐํด๋ดค๋๋, ๋ฐฑ์๋ ๊ฐ๋ฐ์ ์ฌ๊ธฐ์ ๊ธฐ์ ๋ฐฐ์ธ ๋ ์ด๋ ๊ฒ ํ๋ ๊ฒ๋ง ๋ด์๊ณ ํ๋ก์ ํธ ๊ฐ๋ฐ๊น์ง๋ง ํ๊ณ ์ ์ง๋ณด์ ๋จ๊ณ๊น์ง ๊ฐ๋ณด์ง ์์ ๋ถํธํจ์ ํฌ๊ฒ ๋๊ปด๋ณด์ง ๋ชปํด์ ์๋ ๊ฒ ๊ฐ๋ค. Datagrip์ ๋ฐฐ์ฐ๋ฉด์ ์ ์ธ๊ณ๋ฅผ ๋ง๋ณด๊ณ ์ฌ๊ธฐ์ ๊ธฐ์ ์ธ๋ผ์ดํด์๋๋ฐ, ๋ถํธํ๋ ์ฌ๋์ ๋ชป๋ณธ ๊ฒ ๊ฐ๋ค. ํ๋ ์์ฌ์ด ์ ์ public subnet์ ์์ด์ผ๋ง ๊ฐ๋ฅํด์ ๋ณด์์ ์ผ๋ก ์์ฝ๋ค๋ ๊ฒ์ด์๋๋ฐ, ๋ด๊ฐ ๋ชจ๋ฅด๋ ๊ฒ์ด์๋ค.... SSH Tunneling์ ํตํด ์์ ํ๋ฉด์๋ ํธํ๊ฒ DB๋ฅผ ๋ค๋ฃฐ ์ ์..
์ด์ ๋
ธ์
๋ธ๋ก๊ทธ์ Transaction ์ด๋? (2020.12.22)๋ก๋ถํฐ ๋ง์ด๊ทธ๋ ์ด์
๋ ๊ธ์
๋๋ค. ํธ๋์ญ์
, Transaction ์ด๋? Transaction์ด๋, DB์ ์ํ๋ฅผ ๋ณํ์ํค๊ธฐ ์ํด ์ํํ๋ ์์
์ ๋จ์๋ฅผ ๋ปํ๋ค. DB์ ์ํ๋ฅผ ๋ณํ์ํจ๋ค๋ ๊ฒ์ ์๋์ SQL์ ์ด์ฉํด์ DB์ ์ ๊ทผํ๋ ๊ฒ์ ์๋ฏธํ๋ค. SELECT INSERT DELETE UPDATE ์ฐฉ๊ฐํ์ง ๋ง์์ผ ํ ๊ฒ์ ์์
์ ๋จ์๋ SQL ํ ๋ฌธ์ฅ์ด ์๋๋ค. ๋ง์ SQL ๋ช
๋ น๋ฌธ๋ค์ ์ฌ๋์ด ์ ํ๋ ๊ธฐ์ค์ ๋ฐ๋ผ ์ ํ๋ ๊ฒ์ด ์์
์ ๋จ์๋ค. ๊ณ์ํ์ ์๋ฅผ๋ค์ด ๋ณด๋ฉด, ์ฌ์ฉ์๊ฐ ๊ฒ์๊ธ์ ์์ฑํ๊ณ , ์
๋ก๋ ๋ฒํผ์ ๋๋ฅธ๋ค. ๊ทธ ํ์ ๋ค์ ๊ฒํ์ ๋์์์ ๋, ๊ฒ์ํ์ ์์ ์ ๊ธ์ ํฌํจํ ์
๋ฐ์ดํธ๋ ๊ฒ์ํ์ ๋ณด๊ฒ ๋๋ค. ์ด๋ฌํ ์ํฉ์ DB ์์
..
์ด์ ๋
ธ์
๋ธ๋ก๊ทธ์ ๋น๋ ๊ด๋ฆฌ ๋๊ตฌ Maven๊ณผ Gradle ๋น๊ตํ๊ธฐ (2021.01.06)๋ก๋ถํฐ ๋ง์ด๊ทธ๋ ์ด์
๋ ๊ธ์
๋๋ค. ๋น๋ ๊ด๋ฆฌ ๋๊ตฌ๋? ํ๋ก์ ํธ ์์ฑ, ํ
์คํธ ๋น๋, ๋ฐฐํฌ ๋ฑ์ ์์
์ ์ํ ์ ์ฉ ํ๋ก๊ทธ๋จ ํ๋ก์ ํธ์์ ์์ฑํ java ์ฝ๋์ ํ๋ก์ ํธ ๋ด์ ํ์ํ ๊ฐ์ข
xml, properties, jar ํ์ผ๋ค์ JVM์ด๋ WAS๊ฐ ์ธ์ํ ์ ์๋๋ก ํจํค์งํด์ฃผ๋ ๋น๋ ๊ณผ์ = ๋น๋ ์๋ํ ๋๊ตฌ ํ๋ก์ ํธ์ ํ์ํ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ์ข
๋ฅ์ ๋ฒ์ ๋ค, ์ข
์์ฑ ์ ๋ณด๋ฅผ ๋ช
์ํ์ฌ ์๋์ผ๋ก ๋ค์ด๋ก๋ํ๊ณ ๊ด๋ฆฌํ๋ ๋๊ตฌ Maven Maven์ Java์ฉ ํ๋ก์ ํธ ๊ด๋ฆฌ๋๊ตฌ๋ก Apache์ Ant ๋์์ผ๋ก ๋ง๋ค์ด ์ก๋ค. ๋น๋ ์ค์ธ ํ๋ก์ ํธ, ๋น๋ ์์, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ข
์์ฑ ๊ด๊ณ๋ฅผ pom.xml ์ ๋ช
์ํ๋ค. ์ธ๋ถ์ ์ฅ์์..
์ด์ ๋
ธ์
๋ธ๋ก๊ทธ์ SQL Tutorial (2021.01.17)๋ก๋ถํฐ ๋ง์ด๊ทธ๋ ์ด์
๋ ๊ธ์
๋๋ค. Aggreate Functions aggregate functions(์ง๊ณ ํจ์)์ ํญ์ ์ฌ์ฉํ๊ฒ ๋ ๊ฒ์ด๋ ์ต์ํด์ ธ์ผ ํ๋ค. arithmetic operators๋ ํ ํ์ ์ด๊ฐ์ ์ฐ์ฐ๋ง ์ํํ์ง๋ง, aggregate functions์ ํ ์ ์ฒด์ ๊ฑธ์ณ์ ์ํํ ์ ์๋ค. COUNT Counting all rows COUNT ๋ ํน์ ์ด์ ์ซ์๋ฅผ ์ธ๋ฆฌ๋ aggregate function์ด๋ค.. ์๋์ ๋ SQL ๋ฌธ์ ๊ฒฐ๊ณผ๋ ๊ฐ๋ค. SELECT COUNT(*) FROM tutorial.aapl_historical_stock_price SELECT * FROM tutorial.aapl_historical_sto..
์ด์ ๋
ธ์
๋ธ๋ก๊ทธ์ java.sql.SQLException: Incorrect string value (2021.03.28)๋ก๋ถํฐ ๋ง์ด๊ทธ๋ ์ด์
๋ ๊ธ์
๋๋ค. java.sql.SQLException: Incorrect string value: '\xEC\xB0\xBD\xEC\xB0\xBD...' for column `mm_server`.`restaurant`.`name` at row 1 Query is: insert into restaurant (deliveryable, description, location, name, price, type) values (?, ?, ?, ?, ?, ?), parameters [0,,3,'์ฐฝ์ฐฝ๊ตญ๋ฐฅ',0,0] java thread: http-nio-8080-exec-1 at..