Experience
-
๊ฐ์ง๊ฒ ์ป์ ๊ฒ๋ค
Pathfinder 1๊ธฐ
2021.12.25 ~ 2022.02.28 ์ธ์ ์ฒซ ํ์ฌ ์ํ์ด์ ํ์
๊ฐ๋ฐ์ ๋ง์ ๋ณด์๊ณ ๋์ ์ฅ์ ์ ์๊ฒ ๋๋ค. ์ด์ ๊ฒฝํ๊ณผ์ ์ฐจ์ด์ (๊ฐ์ธ์ ๊ฒฝํ) ํ๋ถ ํ๋ก์ ํธ ํ์
๊ฐ๋ฐ ๊ธฐํ ๊ทผ์ฌํด๋ณด์ด๋ ๊ฒ ์ฌ๋๋ค์ด ํ์๋ก ํ๋ ์๋น์ค ํ๊ฒ์ ๋ ์นด๋กญ๊ฒ ๊ฐ๋ฐ ๋ฐฉ๋ฒ๋ก ์ ์์ผ ์ ์ฉํ ๊ฒฝํ์ด ๋๋ฌพ ์ ์์ผ ์ฝ์น๊ฐ ํ์ ๋ถ์ด ํจ์จ์ ์ธ ๊ฐ๋ฐ์ ๋์์ค MVP ๊ทธ๊ฒ ๋ญ์ ์ต๋ํ ๋น ๋ฅด๊ฒ, ํจ์จ์ ์ผ๋ก MVP ๊ฐ๋ฐ ํ ์ฌ์ฉ์ ํผ๋๋ฐฑ ๋ฐ๊ธฐ ๊ฐ๋ฐ ์คํ ์ ์ ํ ์ ์๋ ๊ธฐ์ ์ ํ ๋ชจ๋ฅด๋๋ผ๋ ๊ฐ์ฅ ํ๋ก์ ํธ์ ์ ํฉํ ๊ธฐ์ ์ ํ ๊ฐ๋ฐ์ ์ด๋ ค์ ๋จธ๋ฆฌ ์ธ๋งค๊ณ ๊ณ ๋ฏผํ๊ธฐ ๊ตฌ๊ธ์ ๊ฒ์ ๋จธ๋ฆฌ ์ธ๋งค๊ณ ๊ณ ๋ฏผํ๊ธฐ ๊ตฌ๊ธ์ ๊ฒ์ + ๋ค๋ฅธ ํ ๊ฐ๋ฐ์์๊ฒ ๋ฌธ์ + ์์ค ๊ฐ๋ฐ์์๊ฒ ๋ฌธ์ (์ผํฌ ์์ด๋น์ด ์๋ ์ ์์) Pair programming ๊ธ๋ก๋ง ๋ดค๋ค ์ง์ง ..
-
๊ฐ์ง๊ฒ ์ป์ ๊ฒ๋ค
์ ์์ผ ๋ฐฉ๋ฒ๋ก ์๊ณ ํ์
์ ์์ผ์ ๋น ๋ฅธ ๊ฐ๋ฐ์ ์ํ ๋ฐฉ๋ฒ์ด๋ค? NO ์ ์์ผ์ ๋น ๋ฅธ ๊ฐ๋ฐ์ ์ํด์๊ฐ ์๋๋ค. ํจ์จ์ ์ธ ์์ฐ์ ์ํ ๋ฐฉ๋ฒ๋ก ์ด๋ค ์ฒ์๋ถํฐ ํฐ ๋ชฉํ๋ฅผ ๋๋์ด ๊ฐ๋ฐํ๊ธฐ๋ณด๋ค ์์ ๋ชฉํ๋ถํฐ ์ ์ฐจ ํค์๊ฐ๋ ๊ฒ์ด ํจ์ฌ ์ฑ๊ณตํ๋ฅ ์ด ํฌ๋ค SW ๊ฐ๋ฐ ๊ณผ์ ์์ ์์ ๋ชฉํ๋ MVP๊ฐ ๋๋ค ์ ์์ผ์ ๋นํจ์จ์ ์ธ ๋ฌธ์์์
์ ์ง์ํ๋ค. ๊ธฐ๋ก์ ํ์ง ์๋ ๋ฐฉ๋ฒ๋ก ์ธ๊ฐ? NO ํต์ฌ์ ํ์ํ ๊ฒ๋ง ๊ธฐ๋กํ๊ณ ์ ๋ฆฌํ์๋ ๊ฒ์ด๋ค "Quick and dirty" ๋ผ๊ณ ๋ถ๋ฆฌ๋ ๋ฐฉ๋ฒ์ด ์๋ค ๊ตฌ์ฑ์์ด ๋ฒฝ๊ณผ ํฌ์คํธ์ ํน์ Tool์ ์ด์ฉํ์ฌ ์ผ์ ์๊ฐ ๋ชจ๋ ์์ด๋์ด๋ฅผ ์ ๊ณ ์ ๋ฆฌํด๊ฐ๋ฉฐ ์ด์ผ๊ธฐํ๋ ๋ฐฉ์์ด๋ค ๊น๋ํ ์ ๋ฆฌ๋ ๋ฌธ์๋ฅผ ์ํ ๊ฒ์ด ์๋๋ค (ํ์ง๋ง ๊ณต๋์ฒด ์์์ ํ์ํ๋ค๊ณ ์๊ฐํ๋ฉด ํ๋ ๊ฒ์ด ์ ์์ผ ์ ์ ์ด๋ค) ์ค๋ก์ง ํ์์ ๋ชฉํ๋ฅผ ๋น ๋ฅด๊ฒ ๋ฌ์ฑํ๊ธฐ ์ํด ๊ธฐ๋ก์ ํ์ฉ..
-
๊ฐ์ง๊ฒ ์ป์ ๊ฒ๋ค
IT ํ๋ก์ ํธ ๊ธฐํํ๋ ๋ฒ
1. ํต์ฌ ์ฃผ์ , ํ์ด์ผ ํ๋ ๋ฌธ์ ๋ฅผ ์ ์ ํ๋ค ex) "AI๊ฐ ์ ์ ๊ฑด๊ฐ ๊ด๋ฆฌ์ ๋์์ ์ค ์ ์์๊น?" 2. ํ๊ฒ์ ์์ฃผ ๋ช
ํํ ์ ํ๋ค ex) ์ฐ์ธ, ๋ถ์ ์ฆ์์ ๊ฒช๋ ์ฌ๋๋ค 3. ํต์ฌ ๊ฐ์น๋ฅผ ์ ํ๋ค ex) ์ฐ์ธ, ๋ถ์ ์ฆ์์ ๊ฒช๋ ์ฌ๋๋ค์ด ์ค์ค๋ก๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ , ๊ด๋ฆฌํ ์ ์๋๋ก 4. ํ๊ฒ๊ณผ ๋ชฉํ(๊ฐ์น)๋ฅผ ๋ง์กฑํ๋ ๊ธฐ๋ฅ์ ์ค์ ํ๋ค ex) ๊ฐํธํ ์ฌ๋ฆฌ๊ฒ์ฌ, ์ฑ๋ด์ ํตํ ์๊ธฐ ์ฑ์ฐฐ๊ณผ ๊ธฐ๋ก, ์ฃผ๋ณ ์๋ด์ผํฐ ์ฐ๊ฒฐ, ์๊ฐ ๋ฆฌํฌํธ ๋ฑ 5. MVP๋ฅผ ์ค์ ํ๋ค MVP : Minimum Viable Product Minimum Viable Product (MVP) A minimum viable product, or MVP, is a product with enough features to attract early-ad..
์ต์ ๊ธ
-
Spring
Spring batch - JobInstanceAlreadyCompleteException ํด๊ฒฐ
RunIdIncrementer - ์์ ํ uniqueํ์ง ์๋ค. JobInstanceAlreadyCompleteException ํน์ JobExecutionAlreadyRunningException์ด ๋ฐ์ํ๋ ๊ฒฝ์ฐ batch job์ run.id ์ job parameter๊ฐ ๋์ผํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ๋ ๊ฒฝ์ฐ์ผ ํ๋ฅ ์ด ํฌ๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ด spring batch์์ run.id๋ฅผ ์๋์ผ๋ก 1์ฉ ์ฆ๊ฐ์์ผ ๋์ผํ ํ๋ผ๋ฏธํฐ๋ฅผ ์ฌ๋ฌ๋ฒ ์ฌ์ฉํ ์ ์๋๋ก ์ค์ ํ๋ค. @Bean public Job myBatchJob() { return jobBuilderFactory.get("myBatchJob") .incrementer(new RunIdIncrementer()) // RunIdIncrementer ์ ์ฉ .st..
-
์ทจ์
๋ง์ง๋ง 1์น
๋ ์๊ฐ ์ ํฉ๊ฒฉ ๋ฉ์ผ์ ๋ฐ์์ต๋๋ค. ์ต์ข
๋ฉด์ ์ด ์์๋์ด ๋ ์ ๋๋ก ์ด๋ ค์ ์ด์ ์ฐจ๋ผ๋ฆฌ ๋จ์ด์ก๋ค ์๊ฐํ์. ๊ทธ๊ฒ ๋ง์ ํธํ๋ค๋ ์๊ฐ์ผ๋ก ๊ธฐ๋๋ฅผ ์ ์์์ด์. ์ ๋ง ๊ฐ๊ณ ์ถ์ ํ์ฌ๋ผ ๋ ๊ทธ๋ฌ๋ ๋ด์. ๋์๋ณด๋ ์ฌํด 8์์ ์กธ์
ํ๋ ์์ง ํ๋ถ์์ด์ง๋ง ๋ฒ์จ 1๋
๋์ ์ทจ์
์ค๋น๋ฅผ ํ๋ค์. ๊ทธ๋์ ๋ง์ด ๊ธฐ๋ํ๊ณ ๋จ์ด์ง๊ณ ์ค๋งํ์ต๋๋ค. ํนํ ์ฒซ ๋ฒ์งธ ๊ณต์ฑ์์ ๋จ์ด์ก์ ๋, ํ๋ฃจ์ ๋ถํฉ๊ฒฉ ํต์ง๋ฅผ 3๋ฒ ๋ฐ์์ ๋, ์ต์ข
์์ ๋จ์ด์ง ๋ ๊ฝค๋ ๋ง์์ด ์ํ ์ด์. ์ ์ฃผ๋ณ์๋ ํ ํ๊ธฐ ๋ด์ ์ทจ์
์ ์ฑ๊ณตํ๋ ์ฌ๋๋ค์ด ๋ง์์ด์ ๋ ์๋์ ์ผ๋ก ์ ๊ฐ ์๊ฒ ๋๊ปด์ก์ด์. ํฉ๊ฒฉํ ์ง ๋ช ์๊ฐ์ด๋ ๋๋ค๊ณ ๋ญ ์๋ ๋ฏ์ด ๊ธ์ ์ ๋ ๊ฒ ์๊ธฐ์ง๋ง, ์ฌ์ค ๋๋ฌด ํ๊ณ ์ถ๋ ์ด์ผ๊ธฐ, ๋๊ผ๋ ๊ฒ๋ค์ ๋ํด ๋งํ ์๊ฒฉ์ ์ค์ค๋ก์๊ฒ ๋ถ์ฌ๋ฐ์ ๊ฒ ๊ฐ์์ ๋ ..
-
Spring
JDBC Templete + PostgreSql ERROR (Can't infer the SQL type to use for an instance of java.util.ArrayList.)
org.postgresql.util.PSQLException: Can't infer the SQL type to use for an instance of java.util.ArrayList. Use setObject() with an explicit Types value to specify the type to use. ์ํ๋ ์์
๊ฐ๊ฐ ๊ฒ์ํ์ ์ Query์ ๊ฐฏ์๊ฐ ๋๋ฌด ๋ง์์ง๋ ๊ฒ์ ์ฐ๋ คํด list์์ id๊ฐ ์๋ ๊ฒฝ์ฐ ๊ฐ์ ธ์ค๋ SQL์ ์ง๋ ค๊ณ ํ๋ค. select * from public.game_id_name where app_id in (?) ์ค๋ฅ ๋ฐ์ ์ฝ๋ ํ์ง๋ง ์์ ์๋ฌ๊ฐ ๋ฐ์ํ๊ณ postgresql์ ๊ฒฝ์ฐ java list ํ์
์ผ๋ก ์กฐํํ ์ ์๋ค๋ ๊ฒ์ ์๊ฒ ๋์๋ค. public Lis..
-
Salenote
Salenote๋ฅผ ๊ฐ๋ฐํ๋ฉด์ ์ด๊ฑฐ ํด๋ณด์
UML ํด๋์ค ๋ค์ด์ด๊ทธ๋จ ์ต๋ํ ์ธํฐํ์ด์ค ์ด์ฉํ๊ธฐ JDBC Templete ์ตํ๊ธฐ ๋๋๋ก ์์ํ ์๋ฐ์ฝ๋๋ก Junit ํ
์คํธ AOP ์ฌ์ฉ nGrinder๋ก ์ฑ๋ฅ ํ๊ฐ
-
Spring
domain, entity, dao, dto, vo ??
Salenote์ ๊ฒฝ์ฐ WAS๊ฐ DB๋ฅผ ๊ตฌ์ฑํ์ง ์๊ณ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ ์์
๋ง ์ํํ๊ธฐ ๋๋ฌธ์ (MVP ๊ธฐ์ค) JPA๋ฅผ ์ฌ์ฉํ ์ด์ ๊ฐ ์๋ค๊ณ ์๊ฐํด JDBC Templete๋ฅผ ์ฌ์ฉํ์๋ค. ๋ง์ Salenote ํ๋ก์ ํธ๋ฅผ ์์ํ๋ ์ด๋ค ๊ธฐ์ค์ผ๋ก class๋ฅผ ๋ถ๋ฅํ ์ง, ์ด๋ฆ์ ๋ญ๋ก ํ ์ง ๊ณ ๋ฏผ์ด ๋๋ค. domain, entity, dao, dto, vo์ ๋ํ ๋ช
ํํ ๊ฐ๋
์ด ์ก๊ธฐ์ํด ๋ค์ํ ํฌ์คํ
์ ๋๋ฌ๋ณธ ๋ค ๋๋ฆ๋๋ก ์ ๋ฆฌํ๋ค. ๊ฒฐ๋ก ์ ์ผ๋ก๋ ์๋์ ๊ฐ์ ๋ก์ง์ ํ์ฑํ๋ค. 0. client์๊ฒ ์์ฒญ์ด ์ด 1. controller๊ฐ ๋ฐ์ service ๋ก์ง ์คํ 2. service๋ dao๋ฅผ ์คํ (์๋น์ค ํน์ฑ ์ WAS์์ schema๋ฅผ ์ ์ํ์ง ์์ domain์ ํ์ ์์!) 3. SQL๋ฅผ ์์ฑํด๋ dao์..
-
Salenote
์น ๋ฆฐ์ง์ ์ ํ๋ก์ ํธ Salenote
์น ๋ฆฐ์ง๋ ํ๊ต ๋๊ธฐ 4๋ช
์ด์ ๊พธ๋ฆฐ ๊ฐ๋ฐ ํ์ด๋ค. ๋ง์นจ ์นํ ์น๊ตฌ๋ค 4๋ช
์ด ๋์์ธ, ํ๋ก ํธ์๋, ๋ฐฑ์๋, ํ์คํ์ ๊ฐ๊ฐ ์ง๋งํ๊ณ ์์๊ธฐ ๋๋ฌธ์ ์ด๋ ํ๋ ๋น ๊ณณ ์์ด ํ์ ๊พธ๋ฆด ์ ์์๋ค. ์น ๋ฆฐ์ง์ ์ ํ๋ก์ ํธ๋ ์คํ์ ์ด์ฉํ ์๋น์ค๋ค steam์ ๋ฏธ๊ตญ ๊ฒ์ ๊ฐ๋ฐ, ๋ฐฐ๊ธ์ฌ valve๊ฐ ๊ฒ์ ์
๋ฐ์ดํธ ์๋น์ค๋ฅผ ์๋ํํ๊ธฐ ์ํด ๋ง๋ ์ฌ์ดํธ๋ค. ํ์ฌ๋ ๋น๋์ค ๊ฒ์์ ๋ฐฐํฌ์ ํ๋งค๋ก ํ์ฅํ๋ฉฐ ์ ์ธ๊ณ ๊ฒ์์ธ๋ค์ ๊ฒ์ ์์ ์ญํ ์ ํ๊ณ ์๋ค. Steam Store Steam is the ultimate destination for playing, discussing, and creating games. store.steampowered.com steam์ ๊ฒ์ ์ ๋ณด์ ๊ฒ์์ ์ต์ ํ ๋์ด ์๋ค. ์ฌ์ฉ์๊ฐ ์ํ๋ ๋ชจ๋ ..