๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
[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.
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.
try-with-resource ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•œ JDBC ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์˜ˆ์ œ ์ฝ”๋“œ try-with-resource ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•œ JDBC ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์˜ˆ์ œ ์ฝ”๋“œ try-with-resource๋Š” java 7 ์ด์ƒ๋ถ€ํ„ฐ ์ง€์›๋˜๋ฉฐ try ๋ธ”๋Ÿญ ์‹คํ–‰์ด ์™„๋ฃŒ๋˜๋ฉด ()์•ˆ์˜ ๋ฆฌ์†Œ์Šค์˜ ์ž์›์„ ํ•ด์ œํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ์ž๋™์œผ๋กœ ํ˜ธ์ถœํ•ด์ค€๋‹ค. String url = "jdbc:mysql://localhost:3306/myschema"; // ์œ„์น˜ ์ •๋ณด String username = "user"; // ์ธ์ฆ ์ •๋ณด String password = "1234"; // ์ธ์ฆ ์ •๋ณด // try-with-resource try(Connection conn = DriverManager.getConnection(url, username, password)) { String sql = "SELECT id, username, p.. 2020. 3. 11.
[JAVA ๋””์ž์ธ ํŒจํ„ด] static class์™€ Builder Pattern(๋นŒ๋” ํŒจํ„ด) [JAVA ๋””์ž์ธ ํŒจํ„ด] static class์™€ Builder Pattern(๋นŒ๋” ํŒจํ„ด) 1. static class๋ž€? Static class๋Š” inner class(๋‚ด๋ถ€ ํด๋ž˜์Šค)์˜ ํ•œ ์ข…๋ฅ˜์ด๋‹ค. inner class ์ค‘์—์„œ outer class(์™ธ๋ถ€ ํด๋ž˜์Šค)์˜ ๋ฉค๋ฒ„๋ณ€์ˆ˜ ์„ ์–ธ ์œ„์น˜์— static ํ‚ค์›Œ๋“œ๋ฅผ ๋ถ™์—ฌ ์„ ์–ธํ•œ ํด๋ž˜์Šค์ด๋‹ค. ์ฃผ๋กœ outer class์˜ static ๋ฉ”์†Œ๋“œ์—์„œ ์‚ฌ์šฉ๋œ๋‹ค. 2. static class์˜ ์„ ์–ธ ๋ฐฉ๋ฒ• // Outer class public class Outer { // Static inner class public static class Inner { } } 3. static class์˜ ๋ฉค๋ฒ„์™€ ์ ‘๊ทผ // Outer class public class Outer { // .. 2020. 3. 9.
MyBatis ๋™์  SQL - <choose>์™€ <set>์„ ์‚ฌ์šฉํ•˜์—ฌ ๋™์  SQL ๋งŒ๋“ค๊ธฐ ๊ด€๋ จ ๊ธ€ - [JAVA/WEB] ์›น ํ”„๋กœ์ ํŠธ์— MyBatis ์„ธํŒ… ๋ฐ ์ ์šฉํ•˜๊ธฐ - MyBatis ์„ค์ • ํŒŒ์ผ - SQL Mapper ์ž‘์„ฑ ๋ฐฉ๋ฒ• - MyBatis ์„ค์ • ํŒŒ์ผ ์ž‘์„ฑ ๋ฐฉ๋ฒ• - MyBatis์™€ Log4J ์—ฐ๋™ํ•˜๊ธฐ ์ œ๋ชฉ MyBatis์˜ ๋™์  SQL ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ํ•˜๋‚˜์˜ SQL๋ฌธ์œผ๋กœ ์—ฌ๋Ÿฌ ์ผ€์ด์Šค๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ •๋ ฌ ์กฐ๊ฑด์— ๋”ฐ๋ผ ORDER BY ์ ˆ์„ ๋ฐ”๊ฟ”์•ผ ํ•˜๊ฑฐ๋‚˜ ๊ฒ€์ƒ‰ ์กฐ๊ฑด์— ๋”ฐ๋ผ WHERE ์ ˆ์„ ๋ณ€๊ฒฝํ•ด์•ผ ํ•  ๊ฒฝ์šฐ ๋™์  SQL ๊ธฐ๋Šฅ์„ ์ด์šฉํ•˜๋ฉด ์ž๋™์œผ๋กœ ๋ณ€๊ฒฝ๋˜๋Š” SQL๋ฌธ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ํ‘œ - MyBatis ๋™์  SQL ์ข…๋ฅ˜ ๋™์  SQL ์—˜๋ฆฌ๋จผํŠธ ์„ค๋ช… SQL ์กฐ๊ฑด์ด ์ฐธ์ผ ๊ฒฝ์šฐ SQL๋ฌธ์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. SQL SQL SQL ๊ฒ€์‚ฌํ•  ์กฐ๊ฑด์ด ์—ฌ๋Ÿฌ๊ฐœ์ผ ๊ฒฝ์šฐ ์‚ฌ์šฉ ์ž๋ฐ”์˜ if-else๋ฌธ๊ณผ ์œ ์‚ฌํ•˜๋‹ค.. 2020. 2. 26.
MyBatis์™€ Log4J ์—ฐ๋™ํ•˜๊ธฐ ๊ด€๋ จ๊ธ€ - [JAVA/WEB] ์›น ํ”„๋กœ์ ํŠธ์— MyBatis ์„ธํŒ… ๋ฐ ์ ์šฉํ•˜๊ธฐ - MyBatis ์„ค์ • ํŒŒ์ผ - SQL Mapper ์ž‘์„ฑ ๋ฐฉ๋ฒ• - MyBatis ์„ค์ • ํŒŒ์ผ ์ž‘์„ฑ ๋ฐฉ๋ฒ• MyBatis์™€ Log4J ์—ฐ๋™ํ•˜๊ธฐ MyBatis์™€ log4j๋ฅผ ์—ฐ๋™ํ•˜์—ฌ MyBatis์˜ ๋กœ๊ทธ ์ถœ๋ ฅ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. MyBatis์˜ ๋กœ๊ทธ ์ถœ๋ ฅ ๊ธฐ๋Šฅ์„ ์ด์šฉํ•˜๋ฉด MyBatis์—์„œ ์‹คํ–‰ํ•˜๋Š” SQL๋ฌธ, ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’, ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ํŠนํžˆ ๋™์  SQL๋ฌธ์ด ์‹คํ–‰ ์กฐ๊ฑด์— ๋”ฐ๋ผ ์–ด๋–ป๊ฒŒ ๋‹ฌ๋ผ์ง€๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด ๋””๋ฒ„๊น… ์‹œ ๋งค์šฐ ์œ ์šฉํ•˜๋‹ค. 1. MyBatis ์„ค์ • MyBatis ์„ค์ • ํŒŒ์ผ์— ๋กœ๊ทธ ์ถœ๋ ฅ ์„ค์ •์„ ์ถ”๊ฐ€ํ•œ๋‹ค. ํ•˜์œ„์— ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์„ ์‚ฌ์šฉํ•ด์„œ ๋กœ๊ทธ ์ถœ๋ ฅ๊ธฐ๋ฅผ ์ง€์ •ํ•œ๋‹ค. MyBatis๋Š” ์—ฌ๊ธฐ.. 2020. 2. 25.
MyBatis ์„ค์ • ํŒŒ์ผ ์ž‘์„ฑ ๋ฐฉ๋ฒ• ๊ด€๋ จ ๊ธ€ - [JAVA/WEB] ์›น ํ”„๋กœ์ ํŠธ์— MyBatis ์„ธํŒ… ๋ฐ ์ ์šฉํ•˜๊ธฐ - MyBatis ์„ค์ • ํŒŒ์ผ - SQL Mapper ์ž‘์„ฑ ๋ฐฉ๋ฒ• MyBatis ์„ค์ • ํŒŒ์ผ ์ž‘์„ฑ ๋ฐฉ๋ฒ• MyBatis ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์ฐธ์กฐํ•˜๋Š” XML ํŒŒ์ผ์€ MyBatis ์„ค์ • ํŒŒ์ผ๊ณผ SQL mapper ํŒŒ์ผ๋กœ ๋‚˜๋ˆ„์–ด์ง„๋‹ค. ๋ณธ ํฌ์ŠคํŒ…์—์„œ๋Š” MyBatis ์„ค์ • ํŒŒ์ผ ์ž‘์„ฑ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋‹ค๋ฃฐ๊ฒƒ์ด๋‹ค. MyBatis๋Š” ์ž์ฒด ์ปค๋„ฅ์…˜ํ’€ ๊ตฌ์ถ• ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ์ •๋ณด๋ฅผ ์„ค์ •ํ•ด ๋‘๊ณ  ๊ฐœ๋ฐœ, ํ…Œ์ŠคํŠธ, ์šด์˜์— ๋”ฐ๋ผ ์‚ฌ์šฉํ•  DB ์ง€์ • SELECT ๊ฒฐ๊ณผ ์บ์‹ฑ VO(Value Object, ๊ฐ’ ๊ฐ์ฒด)์— alias ๋ถ€์—ฌ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ MyBatis ์„ค์ •ํŒŒ์ผ์—๋Š” ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋™์ž‘ ํ™˜๊ฒฝ์„ ์„ค์ •ํ•œ๋‹ค. ๋‹ค์Œ์€ MyBatis ์„ค์ • ํŒŒ์ผ์˜.. 2020. 2. 24.
MyBatis ์„ค์ • ํŒŒ์ผ - SQL Mapper ์ž‘์„ฑ ๋ฐฉ๋ฒ• ๊ด€๋ จ ๊ธ€ - [JAVA/WEB] ์›น ํ”„๋กœ์ ํŠธ์— MyBatis ์„ธํŒ… ๋ฐ ์ ์šฉํ•˜๊ธฐ MyBatis ์„ค์ • ํŒŒ์ผ - SQL Mapper ์ž‘์„ฑ ๋ฐฉ๋ฒ• MyBatis ์‚ฌ์šฉ ๋ชฉ์  ์ค‘ ํ•˜๋‚˜๋Š” DAO๋กœ๋ถ€ํ„ฐ SQL๋ฌธ์„ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋ถ„๋ฆฌ๋œ SQL๋ฌธ์€ SQL mapper ํŒŒ์ผ์— ์ž‘์„ฑํ•˜๋ฉฐ DAO์—์„œ๋Š” SqlSession ๊ฐ์ฒด๊ฐ€ SQL mapper ํŒŒ์ผ์„ ์ฐธ์กฐํ•˜๊ฒŒ ๋œ๋‹ค. ๋‹ค์Œ์€ MyBatis SQL mapper ํŒŒ์ผ์˜ ์˜ˆ์ด๋‹ค. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 select PNO, PNAME, STA_DATE, END.. 2020. 2. 23.
[JAVA/WEB] ์›น ํ”„๋กœ์ ํŠธ์— MyBatis ์„ธํŒ… ๋ฐ ์ ์šฉํ•˜๊ธฐ ๊ด€๋ จ ๊ธ€ - MyBatis ์„ค์ • ํŒŒ์ผ - SQL Mapper ์ž‘์„ฑ ๋ฐฉ๋ฒ• - MyBatis ์„ค์ • ํŒŒ์ผ ์ž‘์„ฑ ๋ฐฉ๋ฒ• [JAVA/WEB] ์›น ํ”„๋กœ์ ํŠธ์— MyBatis ์„ธํŒ… ๋ฐ ์ ์šฉํ•˜๊ธฐ ํ™˜๊ฒฝ ๋ฐ ๋ฒ„์ „ ์ •๋ณด IntelliJ IDEA 2019.3 Ultimate, JDK 11, Tomcat 9, MyBatis 3 MyBatis Persistence framework ์ค‘ ํ•˜๋‚˜์ธ MyBatis๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด JDBC ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์—†์ด DB์™€ ์—ฐ๋™ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐœ๋ฐœ์ž๊ฐ€ JDBC API๋ฅผ ์ง์ ‘ ํ˜ธ์ถœํ•˜์ง€ ์•Š๊ณ  MyBatis๊ฐ€ ๋Œ€์‹  ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. MyBatis์˜ ํ•ต์‹ฌ์€ ๊ฐœ๋ฐœ๊ณผ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์‰ฝ๋„๋ก ์†Œ์Šค ์ฝ”๋“œ์— ๋‚ด์žฅ๋ผ์žˆ๋Š” SQL์„ ๋ณ„๋„์˜ ํŒŒ์ผ๋กœ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋˜ํ•œ ๋‹จ์ˆœํ•˜๊ณ  ๋ฐ˜๋ณต์ ์ธ JDBC ์ฝ”๋“œ๋ฅผ ์บก์Šํ™”ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ”„๋กœ๊ทธ๋ž˜.. 2020. 2. 23.
[JAVA/์›น] Annotation๊ณผ Reflections ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์ž๋ฐ” ๋นˆ ๊ด€๋ฆฌํ•˜๊ธฐ [JAVA] Annotation๊ณผ Reflections ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์ž๋ฐ” ๋นˆ ๊ด€๋ฆฌํ•˜๊ธฐ Java Annotation(์ž๋ฐ” ์–ด๋…ธํ…Œ์ด์…˜) ์–ด๋…ธํ…Œ์ด์…˜์€ ์ปดํŒŒ์ผ, ๋ฐฐํฌ, ์‹คํ–‰ ์‹œ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋Š” ํŠน๋ณ„ํ•œ ์ฃผ์„์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ํด๋ž˜์Šค, ํ•„๋“œ, ๋ฉ”์†Œ๋“œ์— ๋ถ€๊ฐ€ ์ •๋ณด๋ฅผ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋‹ค. ์–ด๋…ธํ…Œ์ด์…˜์„ ์ด์šฉํ•ด์„œ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹œ์ž‘๋  ๋•Œ ์ƒ์„ฑ์ด ํ•„์š”ํ•œ ๊ฐ์ฒด๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด๋ณด์ž. ์–ด๋…ธํ…Œ์ด์…˜ ์ •์˜ Component.java 1 2 3 4 5 6 7 8 9 /*์–ด๋…ธํ…Œ์ด์…˜ ์œ ์ง€ ์ •์ฑ… - RetentionPolicy.RUNTIME: * ํด๋ž˜์Šค ํŒŒ์ผ์— ๊ธฐ๋ก๋จ * ์‹คํ–‰ ์‹œ์— ์œ ์ง€๋จ * ์‹คํ–‰ ์ค‘ ํด๋ž˜์Šค์— ๊ธฐ๋ก๋œ ์–ด๋…ธํ…Œ์ด์…˜ ๊ฐ’ ์ฐธ์กฐ ๊ฐ€๋Šฅ * */ @Retention(RetentionPolicy.RUNTIME.. 2020. 2. 21.
JAVA ์›น ํ”„๋กœ์ ํŠธ์—์„œ Properties ํŒŒ์ผ ํ™œ์šฉํ•˜๊ธฐ JAVA ์›น ํ”„๋กœ์ ํŠธ์—์„œ Properties ํŒŒ์ผ ํ™œ์šฉํ•˜๊ธฐ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹œ์ž‘ํ•˜์ž๋งˆ์ž ๊ฐ€์ ธ์™€์•ผํ•˜๋Š” ์ •๋ณด์™€ ๊ฐ™์€ ๊ฒƒ๋“ค์„ ํ”„๋กœํผํ‹ฐ ํŒŒ์ผ์— ์ž‘์„ฑํ•ด์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์›น ํ”„๋กœ์ ํŠธ์—์„œ ํ”„๋กœํผํ‹ฐ ํŒŒ์ผ์„ ์ž‘์„ฑํ•ด์„œ ๊บผ๋‚ด ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. ํ”„๋กœํผํ‹ฐ ํŒŒ์ผ ์ž‘์„ฑํ•˜๊ธฐ ํ”„๋กœํผํ‹ฐ ํŒŒ์ผ์€ ํ•œ ๋ผ์ธ์— key=value ํ˜•์‹์œผ๋กœ ์ž‘์„ฑํ•˜๊ณ  .properties ํ™•์žฅ์ž๋ฅผ ๋ถ™์—ฌ ์ €์žฅํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ํ”„๋กœํผํ‹ฐ ํŒŒ์ผ ๋กœ๋”ฉ ๋ฐ ๋‚ด์šฉ ๊ฐ€์ ธ์˜ค๊ธฐ(์ฝ๊ธฐ) java.util.Properties ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ”„๋กœํผํ‹ฐ ํŒŒ์ผ์„ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋‹ค. Properties๋Š” key=value ํ˜•์‹์˜ ํ…์ŠคํŠธ ํŒŒ์ผ์„ ๋‹ค๋ฃฐ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํด๋ž˜์Šค์ด๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด ํ”„๋กœํผํ‹ฐ ํŒŒ์ผ์„ ๋กœ๋“œํ•˜์—ฌ ๋‚ด์šฉ์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. 1 2 3.. 2020. 2. 20.
๋ฆฌํ”Œ๋ž™์…˜ API๋ฅผ ์ด์šฉํ•œ Front Controller ์ž๋™ํ™” ๋ณธ ๋‚ด์šฉ์€ ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๋‚ด๋ถ€ ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•˜๋Š”๋ฐ ๋„์›€์ด ๋œ๋‹ค. ๋ฆฌํ”Œ๋ž™์…˜ API๋ฅผ ์ด์šฉํ•œ Front Controller ์ž๋™ํ™” ์•„๋ž˜์™€ ๊ฐ™์€ ์‹ ๊ทœ ํ•™์ƒ(ํšŒ์›)์„ ๋“ฑ๋กํ•˜๋Š” ํผ์ด ์žˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ’์„ ์ž…๋ ฅํ•˜๊ณ  [๋“ฑ๋ก] ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ด์„œ ์‹ ๊ทœ ํ•™์ƒ ๋“ฑ๋ก์„ ์š”์ฒญํ•˜๋ฉด ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•  ์ปจํŠธ๋กค๋Ÿฌ์—๊ฒŒ ์ž…๋ ฅํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•ด์•ผ ํ•œ๋‹ค. 1 2 3 4 5 6 7 8 9 10 11 12 // ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ’์„ ๊บผ๋‚ด์„œ Map์— ๋‹ด์Œ model.put("student", new Student() .setStudentNo(req.getParameter("student_no")) .setStudentName(req.getParameter("student_name")) .setAddress(req.getParameter("address")).. 2020. 2. 20.