[Spring Boot] ApplicationRunner ๋ฑ๋ก ๋ฐฉ๋ฒ ์ ๋ฆฌ [Spring Boot] ApplicationRunner ๋ฑ๋ก ๋ฐฉ๋ฒ ์ ๋ฆฌ 1. ๋ณ๋์ ํด๋์ค์ @Component ๋ถ์ฌ์ ๋ฑ๋กํ๊ธฐ import org.springframework.boot.ApplicationArguments; import org.springframework.stereotype.Component; @Component public class ApplicationRunner implements org.springframework.boot.ApplicationRunner { @Override public void run(ApplicationArguments args) throws Exception { // ์ฝ๋ ์์ฑ } } 2. @Configuration ํด๋์ค์ @Bean์ผ๋ก ์ง์ ๋ฑ๋กํ๊ธฐ .. 2020. 3. 26. ์คํ๋ง ๋ถํธ ํ ์คํธ - ๋ด์ฅ ์๋ฒ ๋๋ค ํฌํธ๋ก ๋์ฐ๊ธฐ ์คํ๋ง ๋ถํธ ํ ์คํธ - ๋ด์ฅ ์๋ฒ ๋๋ค ํฌํธ๋ก ๋์ฐ๊ธฐ ๐ Dependency spring-boot 2.2.5.RELEASE junit 4.12 @RunWith(SpringRunner.class) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) public class WebtoonApiControllerTest { @LocalServerPort private int port; @Test public void printPort() throws Exception { System.out.println(port); assertNotEquals(port, 0); } @Autowired private TestRestTemplate.. 2020. 3. 24. [์๊ณ ๋ฆฌ์ฆ] ๋ถํ ์ ๋ณต ๋ฐฉ๋ฒ - ์ด์ง ํ์, ํต ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ [์๊ณ ๋ฆฌ์ฆ] ๋ถํ ์ ๋ณต ๋ฐฉ๋ฒ - ์ด์ง ํ์, ํต ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ 1. ๋ถํ ์ ๋ณต(Divide-and-Conquer) ๋ฐฉ๋ฒ - ๋ํ์ ์ธ ์๊ณ ๋ฆฌ์ฆ ์ค๊ณ ๊ธฐ๋ฒ ์ค ํ๋ - ๋ํ์ ์ธ ์๊ณ ๋ฆฌ์ฆ ์ค๊ณ ๊ธฐ๋ฒ : ๋ถํ ์ ๋ณต(divide-and-conquer) ๋ฐฉ๋ฒ, ๋์ ํ๋ก๊ทธ๋๋ฐ(dynamic programming) ๋ฐฉ๋ฒ, ์์ฌ์์ด(greedy) ๋ฐฉ๋ฒ 1) ๋ถํ ์ ๋ณต ๋ฐฉ๋ฒ์ ์๋ฆฌ - ์ํ์ (recursive)์ผ๋ก ๋ฌธ์ ๋ฅผ ํธ๋ ํํฅ์(top-down) ์ ๊ทผ ๋ฐฉ๋ฒ ์ฃผ์ด์ง ๋ฌธ์ ์ ์ ๋ ฅ์ ๋ ์ด์ ๋๋ ์ ์์ ๋๊น์ง ์ํ์ ์ผ๋ก ๋ถํ ํ๊ณ ๋ถํ ๋ ์์ ๋ฌธ์ ๋ค์ ํด๊ฒฐํ ํ ๊ทธ ํด๋ฅผ ๊ฒฐํฉํ์ฌ ์๋ ๋ฌธ์ ์ ํด๋ฅผ ๊ตฌํ๋ ๋ฐฉ์ 2) ๋ถํ ์ ๋ณต ๋ฐฉ๋ฒ์ ํน์ง - ๋ถํ ๋ ์์ ๋ฌธ์ ๋ ์๋ ๋ฌธ์ ์ ์ฑ๊ฒฉ์ด ๋์ผํ๋ค. → ์ ๋ ฅ ํฌ๊ธฐ๋ง ์์์ง - ๋ถํ ๋ ๋ฌธ.. 2020. 3. 23. [์ปดํจํฐ๋ณด์] ์ ๋ณด๋ณดํธ์ ๋ชฉํ - ๊ธฐ๋ฐ์ฑ, ๋ฌด๊ฒฐ์ฑ, ๊ฐ์ฉ์ฑ [์ปดํจํฐ๋ณด์] ์ ๋ณด๋ณดํธ์ ๋ชฉํ - ๊ธฐ๋ฐ์ฑ, ๋ฌด๊ฒฐ์ฑ, ๊ฐ์ฉ์ฑ ๐ก ์ ๋ณด๋ณดํธ์ ํต์ฌ ๋ชฉํ - ๊ธฐ๋ฐ์ฑ(Confidentiality) - ๋ฌด๊ฒฐ์ฑ(Integrity) - ๊ฐ์ฉ์ฑ(Availability) ๐ก ์ ๋ณด๋ณดํธ์ ๊ธฐํ ๋ชฉํ - ๋ถ์ธ๋ฐฉ์ง(Non-Repudiation) - ์ธ์ฆ(Authentication) - ์ ๊ทผ์ ์ด(Access Control) 1. ์ ๋ณด๋ณดํธ์ ํต์ฌ ๋ชฉํ ๊ธฐ๋ฐ์ฑ(Confidentiality) ํ๋ฝ๋์ง ์์ ์๊ฐ ์ ๋ณด์ ๋ด์ฉ์ ์ ์ ์๋๋ก ํ๋ ๊ฒ ์) ๊ณ ๊ฐ ์ ๋ณด ๋ณดํธ ์ ๊ทผ ์ ์ด์ ์ํธํ ๋ฌด๊ฒฐ์ฑ(Integrity) ํ๋ฝ๋์ง ์์ ์๊ฐ ์ ๋ณด๋ฅผ ์์ ํ๊ฑฐ๋ ์๋ณ์กฐํ ์ ์๋๋ก ํ๋ ๊ฒ ์๋ณ์กฐ ๋ฐ์ ์ ํ์ธ์ด ๊ฐ๋ฅํด์ผํจ ๊ฐ์ฉ์ฑ(Availability) ํ๋ฝ๋ ์ = ์ ๊ทผ ๊ถํ์ด ์๋ ์๋ ์ธ์ ๋ ํ์ํ ๋.. 2020. 3. 23. [์ปดํจํฐ๊ณตํ/์ํํธ์จ์ด๊ณตํ] ์ํํธ์จ์ด ๊ณตํ ๊ฐ์ [์ปดํจํฐ๊ณตํ/์ํํธ์จ์ด๊ณตํ] ์ํํธ์จ์ด ๊ณตํ ๊ฐ์ 1. ์ํํธ์จ์ด์ ์ ์ ํฌ๊ด์ /์ํํธ์จ์ด ๊ณตํ ๊ด์ ์ ์ํํธ์จ์ด ์ ์ : ๐ ์ข์ ์๋ฏธ์ ์ํํธ์จ์ด(ํ๋ก๊ทธ๋จ๊ณผ ๊ด๋ จ ๋ฐ์ดํฐ์ ๋ฌถ์)์ ๋ํ์ฌ ๊ด๋ จ ๋ฌธ์๋ค์ ํฌํจํ ๊ฐ๋ 2. ์ํํธ์จ์ด์ ๋ถ๋ฅ ๊ธฐ๋ฅ์ ๋ฐ๋ฅธ ๋ถ๋ฅ ์์คํ ์ํํธ์จ์ด ์์ฉ ์ํํธ์จ์ด ์ฌ์ฉ์์ ๋ฐ๋ฅธ ๋ถ๋ฅ ์ผ๋ฐ(Generic) ์ํํธ์จ์ด : = ํจํค์ง ์ํํธ์จ์ด = ๋ฒ์ฉ ์ํํธ์จ์ด ๋ง์ถคํ(Custom) ์ํํธ์จ์ด : = ๋น์คํฌํฌ ์ํํธ์จ์ด 3. ์ํํธ์จ์ด์ ์ฑ์ง ๋ฌดํ์ ์ธ๊ณต๋ฌผ - ๋ฌผ์ง์ ์ธ ์ฑ์ง ์์ (H/W์ ๋นํด) ์ปดํฌ๋ํธ๋ค์ ์กฐ๋ฆฝ์ ํตํด ๋ง๋ค๊ธฐ ์ด๋ ค์ ์ค๊ณ ๊ณผ์ ์ ํ์ง ๋ณด์ฆ ํ๋ ์ค์ (cf. H/W : ๊ตฌํ/์ ์ ๊ณผ์ ์ด ์ค์) ๊ฐ๋ฐ ๋น์ฉ โ ์ธ๊ฑด๋น (H/W์ ๋นํด) ๋ณ๊ฒฝ ์ฉ์ด - ์ํํธ์จ์ด์ .. 2020. 3. 22. IntelliJ Gradle ๋ฒ์ ๋ค์ด๊ทธ๋ ์ด๋ (5.x -> 4.x) ๋ฐฉ๋ฒ IntelliJ Gradle ๋ฒ์ ๋ค์ด๊ทธ๋ ์ด๋ (5.x -> 4.x) ๋ฐฉ๋ฒ IntelliJ 2019.3 Ultimate ๊ธฐ์ค, Gradle ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก 5์ ๋๋ก ์์ฑ๋๋ค. 4์ ๋๋ก ๋ค์ด๊ทธ๋ ์ด๋๋ ์๋์ ๊ฐ์ด ํ๋ฉด ๋๋ค. ํฐ๋ฏธ๋์ ์ด๊ณ (๋จ์ถํค : Atl + F12) gradlew wrapper --gradle-version 4.10.2 ์ ๋ ฅํ๊ณ ์คํ References https://github.com/jojoldu/freelec-springboot2-webservice/issues/2 2020. 3. 22. IntelliJ์์ Commit ์ Reformat code ์ต์ ๊ณผ Rearrange code ์ต์ ์ ์ฐจ์ด IntelliJ์์ Commit ์ Reformat code ์ต์ ๊ณผ Rearrange code ์ต์ ์ ์ฐจ์ด ์ด์ ๊น์ง Git์ ์ปค๋ฐ์ ํ๋ฉด์ Reformat code์ Rearrange code ์ต์ ์ ํฌ๊ฒ ์์ํด์ ์ฌ์ฉํ ์ ์ด ์๋๋ฐ ๋ฌธ๋ ๋ ์ต์ ์ ์ฐจ์ด๊ฐ ๊ถ๊ธํด์ ธ์ ์ฐพ์๋ดค๋ค. Reformat code ์ต์ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.stereotype.Component; @Component pub.. 2020. 3. 21. [JPA/Hibernate] persistence.xml ์ค์ ๋ฐฉ๋ฒ [JPA/Hibernate] persistence.xml ์ค์ ๋ฐฉ๋ฒ JPA 2.1 hibernate-entitymanager 4.3.10.Final JPA๋ persistence.xml์ ์ฌ์ฉํด์ ํ์ํ ์ค์ ์ ๋ณด๋ฅผ ๊ด๋ฆฌํ๋ค. ํด๋์ค ํจ์ค์ META-INF/persistence.xml ์ ์์ฑํ๋ฉด ๋ณ๋์ ์ค์ ์์ด JPA๊ฐ ์ธ์ํ ์ ์๋ค. ํ ํ๋ฆฟ persistence.xml์ ๋ก ์์ํ๋ฉฐ xmlns์ ๋ค์ ์คํ์ด์ค, version์ ์ฌ์ฉํ JPA ๋ฒ์ ์ ์ง์ ํ๋ค. ์ name์ unit์ ๊ณ ์ ํ ์ด๋ฆ์ ์ค์ ํ๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ฐ๊ฒฐํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋น ํ๋์ persistence unit์ ๋ฑ๋กํ๋ค. ๊ทธ๋ฆฌ๊ณ ์๋์ JPA ํ์ค ์์ฑ๊ณผ ํ์ด๋ฒ๋ค์ดํธ ์์ฑ์ ์ค์ ํ๋ค. ํ์ ์์ฑ ์ผ๋ฐ์ ์ผ๋ก JPA๋ฅผ ์ฌ์ฉํ ๋ ์ค์ ํด.. 2020. 3. 19. H2 Database ์ค์น, ์๋ฒ ์คํ, ์ ์ ๋ฐฉ๋ฒ (Windows, MacOS with homebrew) H2 Database ์ค์น, ์๋ฒ ์คํ, ์ ์ ๋ฐฉ๋ฒ (Windows, MacOS)H2 ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ค์น๊ฐ ํ์ ์๊ณ ์ฉ๋์ด ๋งค์ฐ ๊ฐ๋ฒผ์ฐ๋ฉฐ ์น์ฉ ์ฝ์(์ฟผ๋ฆฌํด)์ ์ ๊ณตํ์ฌ ๊ฐ๋ฐ์ฉ ๋ก์ปฌ DB๋ก ์ฌ์ฉํ๊ธฐ ์ข์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ด๋ค. H2์ ํน์ง์ ์ ๋ฆฌํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค. Java๋ก ์์ฑ๋ ์คํ์์ค RDBMS์คํ๋ง ๋ถํธ๊ฐ ์ง์ํ๋ ์ธ๋ฉ๋ชจ๋ฆฌ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ด๋ค.์ธ๋ฉ๋ชจ๋ฆฌ๋ก ๋์ฐ๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์์ํ ๋๋ง๋ค ์ด๊ธฐํ๋๋ค.๋ณ๋์ ์ค์น๊ฐ ํ์ ์๋ค.๋ก์ปฌ ํ๊ฒฝ, ํ ์คํธ ํ๊ฒฝ์์ ๋ง์ด ์ฌ์ฉ๋๋ค. 1. H2 ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ค์ด๋ก๋http://h2database.com์ ๋ค์ด๊ฐ์ All Platforms๋ฅผ ํด๋ฆญํ๋ค.์ฆ์ ๋ค์ด๋ก๋๊ฐ ์์๋๋ค.ํด๋น ๋งํฌ๋ก ๋ฐ์์ง๋ ๋ฒ์ ์ 2020๋ 3์ ๊ธฐ์ค์ผ๋ก 1.4.2 ๋ฒ์ ์ด๋ค. 2. H2 ๋ฐ์ด.. 2020. 3. 18. SQL ์์กด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฌธ์ ์ ๊ณผ JPA SQL ์์กด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฌธ์ ์ ๊ณผ JPA ๊ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ ค๋ฉด SQL์ ์ฌ์ฉํด์ผ ํ๋ฉฐ ์๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ JDBC API๋ฅผ ์ฌ์ฉํด์ SQL์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๋ฌํ ์ ์๋ค. JPA๋ฅผ ์ฌ์ฉํ์ ๋์ ์ด์ ์ด ๋ฌด์์ธ์ง, SQL์ ์ง์ ๋ค๋ฃฐ ๋์ ๋ฌธ์ ์ ์ ๋ฌด์์ธ์ง ์์๋ณด๊ธฐ ์ํด ์๋ฐ์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํด์ ํ์ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ๊ฐ๋ฐํด๋ณด์. ํ์ ํ ์ด๋ธ์ ์ด๋ฏธ ๋ง๋ค์ด์ ธ ์๋ค๊ณ ๊ฐ์ ํ๊ณ CRUD(๋ฑ๋ก, ์กฐํ, ์์ , ์ญ์ ) ๊ธฐ๋ฅ์ ๊ฐ๋ฐํด๋ณด์. JDBC ํ์ ๊ด๋ฆฌ ์ดํ๋ฆฌ์ผ์ด์ Member(ํ์) ๊ฐ์ฒด ์๋ฐ์์ ์ฌ์ฉํ Member(ํ์) ๊ฐ์ฒด๋ฅผ ๋ง๋ ๋ค. public class Member { private int no; private String email; private String name.. 2020. 3. 18. [IntelliJ] ์คํ๋ง ๋ถํธ ์์ด ์คํ๋ง ์น MVC ํ๋ก์ ํธ ๋ง๋ค๊ณ ์ค์ ํ๊ธฐ [IntelliJ] ์คํ๋ง ๋ถํธ ์์ด ์คํ๋ง ์น MVC ํ๋ก์ ํธ ๋ง๋ค๊ณ ์ค์ ํ๊ธฐ โป ์ฌ์ฉ IDE : IntelliJ IDEA 2019.3 Ultimate 1. ์ ํ๋ก์ ํธ ์์ฑ ์ฌ์ฉํ๋ ๋น๋ํด(Maven, Gradle) ๊ธฐ๋ฐ์ ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ค. ์ ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ค. 1) ์ฌ์ฉํ ๋น๋ํด ์ ํ - ์ด ๊ธ์์๋ Maven์ ์ฌ์ฉํ๊ฒ ์ต๋๋ค. 2) ์ฌ์ฉํ JDK ์ ํ 3) Next ํด๋ฆญ ํ๋ก์ ํธ ์ ๋ณด๋ฅผ ์ ๋ ฅํ๊ณ Finish๋ฅผ ํด๋ฆญํด์ ํ๋ก์ ํธ ์์ฑ์ ์๋ฃํ๋ค. 2. ํ๋ก์ ํธ ์ธํ 1. Java Compiler ๋ฒ์ ๋ณ๊ฒฝ 2. ํ๋ก์ ํธ์ Web Facet ์ถ๊ฐ 3. war packaging ์ค์ Maven ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ฉด ๊ธฐ๋ณธ Java Compiler ๋ฒ์ ์ด 1.5๋ก ๋์ด์๊ธฐ ๋๋ฌธ์ ๋ณ๊ฒฝ์ด ํ์ํ๋ค. S.. 2020. 3. 17. [IntelliJ] VCS(Git) ์ฌ์ฉ ์ ๋๋ฆผ, ๋ฉ์ถค ํ์ ์กฐ์น ๋ฐฉ๋ฒ [IntelliJ] VCS(Git) ์ฌ์ฉ ์ ๋๋ฆผ, ๋ฉ์ถค ํ์ ์กฐ์น ๋ฐฉ๋ฒ ์ธํ ๋ฆฌJ๋ฅผ ์ฌ์ฉํ๋ค๋ณด๋ฉด ์ข ์ข Git๊ฐ์ VCS๋ฅผ ์ฌ์ฉํ ๋ ๊ด๋ จ ์์ ์ด ๋๋ฌด ์ค๋ ๊ฑธ๋ฆฌ๊ฑฐ๋ ๋ฌดํ ๋ก๋ฉ์ ๋น ์ง๋๊ฐ ์๋ค. ์ผ๋จ Cancel/Skip์ ๋๋ฌ ์์ ์ ์ทจ์ํ๊ณ ์๋ ์กฐ์น ๋ฐฉ์๋ค์ ํ๋์ฉ ํด๋ณด๋ฉด์ VCS ์์ ์ ๋ค์ ์๋ํด๋ณด์. 1. Invalidate Caches and Restart File - Invalidate Caches / Restart... ํด๋ฆญ Invalidate and Restart ํด๋ฆญ 2. VCS - Refresh File Status ํ๋ก์ ํธ ๋ฃจํธ๋ฅผ ์ ํํ ์ํ์์ VCS - Refresh File Status๋ฅผ ํด๋ฆญํ๋ค. 3. IntelliJ VCS Log ์ญ์ ์๋ ๋๋ ํ ๋ฆฌ ํ์์ ํ์ผ๋ค์ ์ญ์ ํ๋ค... 2020. 3. 16. ์ด์ 1 ยทยทยท 3 4 5 6 7 8 9 ยทยทยท 17 ๋ค์