์ฐ๋ฆฌ fisa 2๊ธฐ 'ํด๋ผ์ฐ๋ ์๋น์ค ๊ฐ๋ฐ' 10์ฃผ์ฐจ
์ด๋๋ง ๋ด๊ฐ ์ฌ๊ธฐ ์จ์ง 70์ผ์ด๋ผ๋ ์๊ฐ์ด ์ง๋ฌ๋ค. ๊ฑฐ์ ์ ๋ฐ์ด๋ ์จ ์ ์ด๋ค ใ ใ
์ด ๊ณผ์ ์ ํ ๋ฒ ๋ ๊ฒช์ผ๋ฉด ๊ฑฐ์ง ๋ง๋ฌด๋ฆฌ ๋๋ค๋๊ฒ ๋ฏฟ๊ธฐ์ง๊ฐ ์๋๋ค !!!
๋ด๊ฐ ์ ๋ง ์ํ๊ณ ์์๊น ๋์ ํ ์์น๋ ์์ผ๋ก ๋ฏธ๋๋ ์ด๋ป๊ฒ ๊ทธ๋ ค ๋๊ฐ๊น?? ๋ผ๋ ์๊ฐ์ ํ๋ฉฐ ํ๋ฃจ๋ฅผ ๋ณด๋ด๊ณ ์๋ค.
์ด๋ฌํ ์๊ฐ์ ํ๋ฉด์ ๋์ ์ ๋ฒ ํ ์ฃผ๋ฅผ ์์ด ๋ณธ๋ค!
์ผ์ ์๊ธฐ

์ฌ์ ํ ํ๊ณ ์๋ ์์นจ ์ด๋ ใ ใ ใ ๋๋๋ฉด ๋๋ต ์๋ฒฝ 6์ ์ฏค์ด๋ค... ์คํ 6์ ์๋๋ค!
์ค์ ์ด๋ค ์ค์ !! ๋๋ฆ ์ฒด๋ ฅ ๊ด๋ฆฌ์ ์ ๊ฒฝ์ ๋ง์ด ์ฐ๊ณ ์๊ธฐ ๋๋ฌธ์ ํ์ฌ ์ง์ณ๊ฐ ์๋ ์๋ ์์ ์์ ์ง์น์ง ์๊ณ ๊ณ์ ๋ฌ๋ฆด ์ ์๋ค๊ณ ์๊ฐํ๋ค ใ ใ (์ ์๊ฐ์ ์ ์ ํผ๊ณคํจ ใ ใ )

๊ทธ๋ฐ๋ฐ ~~~ ์ด๋ฒ ํ ์ฃผ๋ ๊ทธ๋ฐ ํ ์ฃผ ์์๊น?? ๋์๊ฒ ์ง๊ฐ์ด๋ผ๋ ๋จ์ด๊ฐ ์ฐพ์์๋ค.. ๊ทธ๊ฒ๋ ๋ ๋ฒ์ด๋..
๋๋ ํญ์ ์ถ๋ฐํ๋ ์๊ฐ์ ์ถ๊ทผ์ ํ์ง๋ง... ์ด์ํ๊ฒ ๋ฒ์ค๊ฐ ๋๋ฆฐ ๊ฑฐ๋ถ์ด์ฒ๋ผ ๊ฐ ๋๊ฐ ์๋ค ใ ใ
ํ ๋ฒ์ ๋์ด ์์ ๋ธ๋์์ด์ค ๋๋ฌธ์ผ๊น?? ๋ ๋ฒ์ ์ค๋ค๊ฐ ๋ค๋ฅธ ์ฐจ์ ๊ตํต์ฌ๊ณ ๋ฐ์ ใ ใ ์ผ๋ก ๊ตํตํผ๋..
๊ทธ๋ ๊ฒ ใ ใ ๋ ๋ ๋ฒ์ ์ง๊ฐ์ ํ๊ฒ ๋์๋ฐ์ ,, ์๋์น ์์ ์ง๊ฐ์ด๋ผ ์กฐํผ ์ต์ธํ๊ธด ํ๋ฐ.. ๋จผ๋ฐ์ ์ค๋ ๊ฑฐ๋ผ
๊ทธ๋ด ์ด๋ช ์ ํผํ ์ ์๊ธด ํ๋๋ณด๋ค ใ ใ
ํ์ง๋ง! ์ด๋ค ์ผ์ด๋ ์ง๊ฐ์ ํ์ฉ๋์ง ์๊ฒ ๋ค๋ ์๊ฐ์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ์ต๋ํ ์ ํ๊ธฐ ์ํด ๋ ธ๋ ฅํ ๊ฒ์ด๋ค !!

๋๋์ด ~ ์ ์ฒ๊ธฐ ์์ฆ์ด ์๋ค !! ๋๋ ์ ์ฒ๊ธฐ ๊ณต๋ถ๋ฅผ ๊พธ์คํ ํด ์๋๋ฐ, ์ ์๋ ์ด ์์ ์ ์๋ฅผ ํ๋ค.
๋๋ ๊ธฐ์ฌ๋ฅผ ์ฒ์ ์์ํด๋ณด๋๋ฐ ใ ใ ๊ดํด์ ์์ญ์ธ ๊ฒ์ ์ฒ์ ์์๋ค ใ ใ ใ ์์นซํ๋ฉด ์๊ธฐ ๋๋ค๊ฐ ์๋
ํ์ง์ญ์์ ๋ณผ ์๋ ์๋ค๊ณ ํ๋๋ผ๊ณ ใ ใ ex) ์์ธ ์ฌ๋ -> ๊ฐ์๋, ๋ถ์ฐ ์ฌ๋ -> ์ง์ฃผ ๋ฑ๋ฑ
๊ทธ๋๋ ๋ฏธ๋ฆฌ ์๋ ค์ฃผ๋ ๋๊ธฐ๊ฐ ์์๊ณ , ์ฐ๋ฆฌ ๋ฐ์ ์๊ฐ๋ณด๋ค ๋ง์ ์ธ์์ด ์ ์ฒ๊ธฐ ์ํ์ ์น๋ค์ผ ํ๊ธฐ์ ์๋ก ๋์์ฃผ๋ฉฐ
์ํ๋ ๋ ์ง ์ฅ์์ ๋ฌด์ฌํ ์์ฐฉํ ์ ์์๋ค ใ ใ (์ฐ๋ฆฌ๋ฐ ์ต์ค!)
๊ฐ์คํ๊ณ ์ด๋ฒ ์ ์ฒ๊ธฐ ๊ผญ ๋ง๋ฌด๋ฆฌ ์ํด์ ํ๊ธฐ ๋ฐ๊ณ ์ค๊ธฐ๊น์ง ๋ธ ์์ ์ด๋ค!!

ํน์ ๋งฅ๋ถ ์ ์ ๋ค !!! ์ด๊ฑฐ ์์ง ๋ง์์์ค !~ ใ ใ ใ CPU ์ฌ์ฉ๋ ํ์ํด์ฃผ๋ ํ๋ก๊ทธ๋จ์ธ๋ฐ
๋ง์ด ์ฌ์ฉํ ์๋ก ์ ๊ณ ์์ด๊ฐ ๋นจ๋ฆฌ ๋ฌ๋ฆฝ๋๋ค ใ ใ so cute ~~ ์ฌ์ง์ด ๊ณ ์์ด ๋ฟ๋ง ์๋๋ผ ์ํ๋ ์ผ๋ฆญํฐ๋ค์ด ์๋๋ฐ ์ ํํ์๋ฉด ๋ฉ๋๋ค!!
'running cat' ์ด๋ผ๊ณ ์น๋ฉด ๋ฐ๋ก ๋์ต๋๋น

๋ค๋ค ์คํ ์คํ ๊น๋ฐฅ ํ๊ธธ๋ ๋ญ๊ฐ ํด์ ํ ๋ฒ ๊ฐ๋ดค๋ค ใ ใ ๋ง๋ ๊ด์ฐฎ๊ณ ์๋ ์ข์์ ๊ฐ์ฑ๋น๋ก๋ ๊ฐ์ด์๋ค ๐๐
๊ฐ์ธ์ ์ผ๋ก ๊น๋ฐฅ์ ์์ฒญ ์ข์ํ๊ธฐ ๋๋ฌธ์ ์์ฃผ ์ ์ฉํ ๊ฒ ๊ฐ๋ค ใ ใ
๊ณต๋ถ ์๊ธฐ
1. ์ด๋ฒ ์ฃผ ๋ฐฐ์ด ๊ฒ
์ด ๋ฒ์ฃผ๋ ํฌ๊ฒ ๋ ๊ฐ์ง๋ก ๋๋ ์ ์๋ค. Data Accessing , JavaEE
Data Accessing
Data Accessing ์๋ JDBC, Connection Pooling, DataSource Interface ๊ทธ๋ฆฌ๊ณ JPA ๋ฐฉ์์ด ์๋ค.
1. JDBC(Java DataBase Connectivity) : ์๋ฐ์์ DB์ ์ฐ๊ฒฐํด์ฃผ๊ธฐ ์ํด JDBC API๋ฅผ ์ ๊ณตํด์ฃผ๋๋ฐ ์ด๋ Driver Manager ํด๋์ค๋ฅผ ํ์ฉํด์ DB์์ ์ฐ๊ฒฐ์ ํ๋ค. ๊ทธ๋ฆฌ๊ณ Statement์ ResultSet์ ํ์ฉํด์ DB ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ๋ค.
- java.sql ํจํค์ง๊ฐ ๊ฐ์ง๊ณ ์๋ class ๋ผ์ด๋ธ๋ฌ๋ฆฌ import (ex. Connection, Statement, ResultSet)
- DB์์ Connection ์ด๊ธฐ -> DriverManger.getConnection() ๋ฅผ ํ์ฉํ์ฌ Connection ๊ฐ์ฒด ์์ฑ (์ค์ DB์์ ๋ฌผ๋ฆฌ์ ์ฐ๊ฒฐ ์ํ)
- ์ฟผ๋ฆฌ ์คํ(Excute a Query) -> SQL๋ฌธ์ DB์ ์ ์กํ๋ Statement ๊ฐ์ฒด ํ์ฉ(or PrepareStatement)
- ๊ฒฐ๊ณผ ๋ฐ์ดํฐ ์ถ์ถ -> ResultSet.getXXX() ๋ฅผ ํ์ฉํ์ฌ ๊ฒฐ๊ณผ ์ (ResultSet)์ผ๋ก๋ถํฐ ๋ฐ์ดํฐ ์ถ์ถ
- DB ์ปค๋ฅ์ close(Clean up the environment) -> conn.close(), stmt.close() ๋ฑ
2. Connection Pooling : ํ๋ก๊ทธ๋จ ์์ ๊ณผ์ ์์ ์ปค๋ฅ์ ๊ฐ์ฒด๋ฅผ 2๊ฐ ์ด์ ๋ฏธ๋ฆฌ ์์ฑํด๋ ํ์ ์ฌ์ฉ์ ์์ฒญ์ด ์ฌ ๊ฒฝ์ฐ ์์ฑํด๋ ๊ฐ์ฒด๋ฅผ ๋ฐ๋ก ํ์ฉํ์ฌ ์์ฒญ ์ฒ๋ฆฌ ์๊ฐ์ ๊ฐ์์ํค๋ ๋ฐฉ์์ด๋ค.

์ปค๋ฅ์ ํ๋ง์ ์ด์
- ์ปค๋ฅ์ ์์ฑ ์๊ฐ ๊ฐ์
- ๊ฐ์ํ๋ ํ๋ก๊ทธ๋๋ฐ ๋ชจ๋ธ
- ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฆฌ์์ค ๊ด๋ฆฌ ์ต์ ํ
3. DataSource Interface : ์๋๋ Connection Pooling์ ํ๊ธฐ์ํด ๋งค๋ฒ ์ปค๋ฅ์ ๊ฐ์ฒด๋ฅผ ์์ฑํด์ผ ํ์๋ค. ํ์ง๋ง, DataSource Interface๋ฅผ ํตํด Hikari, Apache DBCP ๊ตฌํ์ฒด๋ฅผ ํ์ฉํด์ connection pooling์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๋ค.
*DataSource Interface๋ฅผ ํ์ฉํจ์ผ๋ก์จ ์ฝ๋๋ด ์์ ์ ์ต์ํ ์์ผ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ๋ ํจ๊ณผ๊ฐ ์๋ค.
4. JPA(Java Persistence API ): JPA๋ Java Persistence API์ ์ค์๋ง๋ก, ์๋ฐ ์ง์์์ ORM(Object Relational Mapping) ๊ธฐ์ ์ ํ์ค์ผ๋ก ์๋ฆฌ์ก์ ์ธํฐํ์ด์ค์ ์งํฉ์ ์๋ฏธํ๋ค. JPA์ ๊ตฌํ์ฒด๋ก ๋ํ์ ์ธ ๊ฒ์ Hibernate ๊ฐ ์๋ค.

-> JPA๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ, JDBC์ ๋นํด DB์ ใ ๊ทผ์ ์ํด ์์ฑํด์ผ ํ ์ฝ๋์ ๋ณผ๋ฅจ์ด ์ค์ด๋ค๋ฉด์ ์ฝ๋๋ค์ด ๋ณด๋ค ์ถ์ํ ๋๋ค.
๋ํ, Hibernate๋ JPA ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ๊ตฌํ์ฒด์ ํ๋์ผ ๋ฟ์ด์ง, Hibernate๊ฐ JPA์ ์ ๋ถ๋ฅผ ์๋ฏธํ์ง ์๋๋ค. ๋น๋๊ฐ ๋์ ๋ฟ!
*ORM(Object Relational Mapping) : ๋จ์ํ๊ฒ Java ๊ฐ์ฒด๋ฅผ ์๋ฏธํ๋ Object, ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ์ ์๋ฏธํ๋ Relation ์ด ๋ ๊ฐ๋ ์ ์๋ก ์ฐ๊ฒฐ(Mapping)ํ์ฌ ๋ง์น ํ๋์ธ ๊ฒ์ฒ๋ผ ๊ด๋ฆฌํ๊ธฐ ์ํ ๋ฐฉ๋ฒ๋ก ์ด๋ค. (๋ณ๋์ SQL๋ฌธ ์์ฑ ์์ด Java ์ฝ๋๋ง์ผ๋ก DB ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ ๊ฐ๋ฅํ๋ค.)
์ด๋ก์จ ์์์ฑ ์ปจํ ์คํธ ํ์ฉ
<<์์์ฑ ์ปจํ ์คํธ>>
์์์ฑ ์ปจํ ์คํธ ์์ฑ
EntityManager๊ฐ ์์ฑ๋๋ฉด ์์์ฑ ์ปจํ ์คํธ๊ฐ ์์ฑ๋๋ค.
๋งค๋์ ์ ์ปจํ ์คํธ๋ 1:1 ๋งค์นญ
๊ฐ ๋งค๋์ ๋ ๊ฐ๋ณ ์์์ฑ ์ปจํ ์คํธ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
EntityManager manager = factory.createEntityManager();
์ด๊ฑธ๋ก ์ธํด ์์์ฑ ์ปจํ ์คํธ๊ฐ ์์ฑ์ด ๋๋ค. ์ดํ, ์ํฉ์ ๋ฐ๋ผ
Book book = manager.find(Book.class, 0) //์กฐํ
=================
Book book = new Book("์ด๋ฆฐ์์", "์ํ
์ฅํ๋ฆฌ")
manager.persist(book); // ์์์ฑ ์ปจํ
์คํธ์ ์ํฐํฐ๋ฅผ ๋ณด๊ด(์์ํ)
=================
// id๊ฐ 1๋ฒ์ธ Book ์ํฐํฐ๋ฅผ ์กฐํ ํ ์ฑ
์ด๋ฆ์ ๋ณ๊ฒฝ
Book book = manager.find(Book.class, 1); // id๊ฐ 1๋ฒ์ธ ๋ฐ์ดํฐ ์กฐํ
// DB์์ ์กฐํ๋ ์ํฐํฐ(book)์ ํ๋ ๊ฐ์ ๋ณ๊ฒฝํ๋ฉด UPDATE ์ฟผ๋ฆฌ๊ฐ ์์ฑ๋จ
book.setName("๊น์ํ์ JPA");
=================
Book book = manager.find(Book.class, 1);
// id๊ฐ 1๋ฒ์ธ Book ์ํฐํฐ๋ฅผ ์ ๊ฑฐ
// EntityManager๊ฐ ์ ๊ณตํ๋ ๋ฉ์๋
manager.remove(book);
*persist() : ์์์ฑ ์ปจํ ์คํธ์ ์ํฐํฐ๋ฅผ ๋ณด๊ด(์์ํ)
๋ฅผ ํ๊ณ
transaction.commit();
์ ์ํํด์ DB์ ๋ฐ์ํ๋ค.
*๋จ, ์กฐํ Select ๊ฐ์ ๊ฒฝ์ฐ๋ transaction์ด ํ์๊ฐ ์๋ค!
์ ์ฒด์ ์ธ ๊ตฌ์กฐ๋ฅผ ๋ณด๋ฉด ์ด๋ ๊ฒ ๋ ์๊ฐ ์๋ค.

JavaEE
Java SE ๊ธฐ๋ฐ์ผ๋ก ์น ๊ธฐ์ ์ ํ์ฉ, ๊ตฌํ ๊ฐ๋ฅํ ํ๋ซํผ์ ๋งํ๋ค.
์ฌ๊ธฐ์ ์ฌ๋ฌ๊ฐ์ง๋ฅผ ๋ฐฐ์ธ ์ ์์๋๋ฐ ํฌ๊ฒ 7๊ฐ์ง๋ก ๋๋๋ค.
- Web Server์ Web Application Server ์ ์ฐจ์ด์
- Servlet
- Character Encoding - ๋ฌธ์์ฒ๋ฆฌ
- Statement Management - ์ํ ์ ๋ณด ์ ์ง
- Forward & Redirect - ํ์ด์ง ์ด๋
- JSP
- MVN ํจํด
์ด๋ฅผ ํ์ฉํ ์ฌ๋ฌ ๊ธฐ์ ๋ค์ ์ด๋ฏธ ๋ธ๋ก๊ทธ์ ์ ์ ๋ฆฌ ํด๋๊ธฐ ๋๋ฌธ์ ์ด ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํ๋ฉด ๋๋น
https://jiholine10.tistory.com/293
Web Server, Web Application Server
1. Web Server, ์น ์๋ฒ ์ ์ ๋ฆฌ์์ค(HTML, CSS, JS, ์ด๋ฏธ์ง, ์์ ๋ฑ)์ ์ ๊ณตํ๋ ์๋ฒ๋ฅผ ์๋ฏธํ๋ค. 2. Web Application Server, WAS, ์น ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ ์น ์ดํ๋ฆฌ์ผ์ด์ ์๋ฒ๋ ํํ WAS, ์์ค, ์ปจํ ์ด๋, ์น
jiholine10.tistory.com
https://jiholine10.tistory.com/294
Sevlet
1. Servlet ๊ฐ์ Servlet์ ์ฃผ๋ก ์น ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ์์ ๋์ํ๋ ํ๋ก๊ทธ๋จ ๊ตฌํ ์ ์ฌ์ฉํ๋ค. ๋์ ์ ์์๊ฐ ๋์ด๋๋ฉด ํจ์จ์ด ๋จ์ด์ง๋ CGI๊ธฐ์ ์ ๋์์ผ๋ก ๋ฑ์ฅํ๋ค. ์๋ธ๋ฆฟ์ ํด๋ผ์ด์ธํธ์ ์
jiholine10.tistory.com
https://jiholine10.tistory.com/295
Character Encoding - ๋ฌธ์ ์ฒ๋ฆฌ
1. ํ๊ธ ๊นจ์ง ์๋ฒ์์ ํด๋ผ์ด์ธํธ๋ก์ ์๋ต ๋ฉ์์ง ์ ์ก ๊ณผ์ ์์ ๊ธฐ๋ณธ์ ์ผ๋ก ํฌํจํด์ผ ํ ๋ด์ฉ์ด๋ค. ๋ณด๋ด๋ ๋ฐ์ดํฐ ํ์ = text/html ์ธ์ง, json ์ธ์ง ๋ฑ ์ธ์ฝ๋ฉ ํ ๋ฌธ์์ (Charset) ์ ๋ณด = UTF-8์ธ์ง, cp
jiholine10.tistory.com
https://jiholine10.tistory.com/296
Statement Management - ์ํ ์ ๋ณด ์ ์ง
Http ํ๋กํ ์ฝ์ ํน์ฑ ์ค ํ๋๋ ๋ฌด์ํ(Stateless)๋ก ๋์ํ๋ค๋ ๊ฒ ๋ฐ๋ผ์ ์ด์ ์ ์ฐ๊ฒฐ๋ ์์ ์ ์ํ ์ ๋ณด๋ฅผ ์๋ฒ๊ฐ ์ ์งํด์ฃผ์ง ์๋๋ค! ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ํ ์ ๋ณด๋ฅผ ์ผ์ ์๊ฐ ๋์ ์ ์ง์ํค๊ธฐ
jiholine10.tistory.com
https://jiholine10.tistory.com/297
Foward & Redirect - ํ์ด์ง ์ด๋
1. ๊ฒฝ๋ก ์ด๋ ๋ฐฉ๋ฒ ์ฌ์ฉ์์ ์์ฒญ์ ๋ฐ๋ผ ์ผ๋ จ์ ์ฒ๋ฆฌ๊ฐ ์ํ ์ค์ธ ์๋ธ๋ฆฟ์์ ๋ค๋ฅธ ์๋ธ๋ฆฟ์ผ๋ก ์ด๋ํ์ฌ ๋ค๋ฅธ ์ฒ๋ฆฌ๋ ์ํํด์ผ ํ ๊ฒฝ์ฐ, ์ด๋ํ๋ ๋ฐฉ๋ฒ์ ํฌ๊ฒ 2๊ฐ์ง ์ด๋ค. 1-1 Forward ํด๋ผ์ด์ธํธ
jiholine10.tistory.com
https://jiholine10.tistory.com/298
JSP - Java Server Page
JSP, Java Server Page JSP๋ ๊ฐ๋จํ๊ฒ Java code in HTML์ ์๋ฏธํ๋ค. ์๋ธ๋ฆฟ ๊ธฐ๋ฐ HTML ํ์ด์ง ๊ตฌํ์์ ๋ดค๋ฏ์ด, Java ์ฝ๋์ HTML์ ๋ฌธ์์ด ํํ๋ก ์์ฑํ๊ธฐ์ ๋ฌด๋ฆฌ๊ฐ ์๋ค. ๋ฐ๋ผ์, HTML ๋ฌธ์์ Java ์ฝ๋๋ฅผ ์
jiholine10.tistory.com
https://jiholine10.tistory.com/299
MVC Pattern
1. Model - View - Controller Model ๊ฐ๋ฐํ๊ณ ์ ํ๋ ํ๋ก๊ทธ๋จ์์ ์๊ตฌ๋๋ ๊ด์ฌ์ฌ์ด์ ๋ฐ์ดํฐ๋ฅผ ์ถ์ํ, ๋ชจ๋ธ๋งํ์ฌ ํํ๋ ๊ฒฐ๊ณผ ํด๋์ค View Model์ UI Presentation ์ ํ์ํ๋ ์ญํ ์ ๋ด๋นํ๋ ํด๋์ค Con
jiholine10.tistory.com
2. ์ด๋ฒ ์ฃผ์ ๊ฒช์ ์ํ์ฐฉ์ค์ ๊ทน๋ณต
์ด ๋ฒ์ฃผ์ ๊ฒช์ ์ํ์ฐฉ์ค๋ผ ํ๋ค๋ฉด ๋ฉํ ๊ด๋ฆฌ์ด๋ค. ์ฌ๋์ด ์ด๋ค๋ณด๋ฉด ์๊ธฐ๊ฐ ํ๊ณ ์๋ ๊ฒ์ ์๋ฌธ์ ํ์ ๋๊ฐ ์๊ณ ๊ฑฐ๊ธฐ์์ ์ค๋ ๋ถ์๊ฐ์ ๋๋ผ๊ธฐ ๋ง๋ จ์ด๋ค. ์ด๋ด ๋ ๊ฐ์ฅ ํ์ํ ๊ฒ์ ๋์ ๋ํ ๋ฏฟ์์ด๋ค. ๊ทธ๋ฆฌ๊ณ ๋ด ํ ์ผ์ ๋ฌต๋ฌตํ ํ๋ ๊ฒ์ด๋ค. ๊ทธ๋ฌํ์ง ๋ชปํ๊ณ ๋ถ์ํจ ์์ ๊ฐํ๋ค๋ฉด ์๋ฌด๊ฒ๋ ์ด๋ฃฐ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ๋น๋ก, ๋ด๊ฐ ์ด์ฌํํด์ ๊ฐ์ง ๊ฒ์ด ์๋๋ผ๋ ๊ทธ ์์ ๊ฒ์ด๋ผ๋ ์ป๊ธฐ ์ํด์๋ ์ต์ ์ ๋คํด์ผํ๋ ๊ฒ์ด๋ค.
๋ฉํ ๊ฝ ๋ถ์ฌ์ก๊ณ ๋ช ์๊ณผ ์ฑ์ฐฐ์ ํตํด ๋๋ฅผ ๋ ๊ฐํ๊ฒ ์ผ์ผ์ผ ์ธ์ฐ์ !
ํ์ดํ !
3. ์์ผ๋ก ์ด๋์ ์ ์ฉ
Database Accessing ๋ฐฉ์์ ๊ณต๋ถํ๋ฉด์ JDBC API ๋ถํฐ Data Source Interface์ ๊ตฌํ์ฒด Hikari ๊ทธ๋ฆฌ๊ณ JPA ๊น์ง ์ ํ๋ค. ์ด๋ ์ญ์ฌ์ ์ธ ํ๋ฆ์ ์ ์ ์์ ๋ฟ๋ง์ด ์๋๋ผ, ํฅํ ์ด๋ค ํ์ฌ๋ฅผ ๊ฐ๋๋ผ๋ ๋ ๊ฑฐ์ ํ ์ฝ๋๊ฐ ์์ ์๋ ์๋๋ฐ, ๊ฑฐ๊ธฐ์ ํ๋ค๋ฆฌ์ง ์๊ณ ๋ฒํธ ์ ์๋ ์ฃ๋๊ฐ ๋์์ ๊ฒ์ด๋ผ ํ์ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ํฉ์ ๋ง๊ฒ ๊ธฐ์ ์ ์ ์ฉํจ์ผ๋ก์จ ์ผ์ ํจ์จ์ฑ๋ ์ฆ๋๋ ๊ฒ์ด๋ค.
Java EE์ ์ฌ๋ฌ ๊ธฐ์ ์ธ Servlet, JSP, ๋ฑ์ ๋ฐฐ์ฐ๊ณ ์ด๋ฅผ ํตํด ์๊ธด MVC๋ฅผ ๋ฐฐ์ ๋ค. ์ด ์ญ์ Spring์ ๋ค์ด๊ฐ๋ฉด ์ฌ์ฉ ๋น๋๋ ์ค์ด๋ค ๊ฒ์ด์ง๋ง, ํฅํ ์ด๋ ํ ํ์ฌ๋ฅผ ๊ฐ๋๋ผ๋ ์ฝ๋ ํด์์ ์์ด์ ํฐ ๋์์ด ๋ ๊ฒ์์ ๋ถ๋ช ํ๋ค. ๋ํ Spring์ ์ดํดํ๋๋ฐ์๋ ํฌ๊ฒ ๋์์ด ๋ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค.
์ด๋ ๊ฒ ๋น์ฅ ์ฌ์ด๊ฒ, ํธ๋๋ํ ๊ฒ๋ง ํ๋ ๊ฒ์ด ์๋๊ณ , ๊ณผ๊ฑฐ์ ์ผ๋ ๊ฒ์ ๊ฐ์ด ๊ณต๋ถํจ์ผ๋ก์จ ๊ธฐ์ ์ด ์ด๋ป๊ฒ ์ด์ฉ์ด ๋๋์ง์ ๋ํด ์ ํํ ์ ์ ์์๋ ์๊ฐ์ด์๋ค. ์ฝ๋ ํด์ ์์ญ ๋ํ ๊ฐ๋ฐ์๋ก์ ์ค์ํ ๋ถ๋ถ์ธ๋ฐ, ์ด๋ฅผ ํตํด ํด์ ๋ฅ๋ ฅ์ด ํ์ธต ์์นํ ๊ฒ ๊ฐ๋ค!
4. ํ์ฌ๊น์ง์ ํ์ต ํ๊ฐ ๋ฐ ๋ค์ ํ์ต์ ์ํ ๋ค์ง/๋ชฉํ
-์์ -
์ด์ ๊ป ํ๋ก ํธ ๋ฐฑ์๋๋ฅผ ํด์ค๋ฉด์ ๋ง์ ๊ณ ์ถฉ์ด ์์๋ค. ์ด์ ๋ง์ง๋ง ๊ด๋ฌธ Spring์ด ๋จ์๊ณ , ๊ทธ ๋ค์ ๋ถ๊ฐ์ ์ผ๋ก ๊ฐ์๊ฐ ๋จ์๋๋ฐ ๋ง์ง๋ง๊น์ง ์ต์ ์ ๋คํด์ ๋ฌด์ฌํ ๋ด๊ฒ์ผ๋ก ๋ง๋ค ์ ์์์ผ๋ฉด ์ข๊ฒ ๋ค !!
-์ฝํ -
์ฝ๋ฉํ ์คํธ ๊ณต๋ถ๋ ๊พธ์คํ ํ๊ณ ์๋๋ฐ, ์ด์ ์ด๋ ค์ด ๋ถ๋ถ์ธ DFS BFS ์์ญ์ ์ง์ ํ๋ค. ใ ใ ๋์ฑ ์ด์ฌํ ํ๊ณ ์ฐจ๊ทผ์ฐจ๊ทผ ๊ณต๋ถํด ๋๊ฐ์ผ ๊ฒ ๋ค!
-์ ์ฒ๊ธฐ-
์ ์ฒ๊ธฐ ์ง์์ ํ๊ณ 2์ 17์ผ๋ ์ํ์ ๋ณด๊ฒ ๋๋๋ฐ ์ฐจ์ง ์์ด ๊ณต๋ถ๋ฅผ ์งํํ๋๋ก ํด์ผ๊ฒ ๋ค.
-ํ๋ก ํธ ์๋ ๋ณต์ต-
ํ์ฌ ์ด๊ฒ์ ๊ฒ ํ๋ค๋ณด๋ ์ง๋๋ฅผ ๋ง์ด ๋ชป ๋นผ๊ณ ์๋ค. ํ์ฌ ์ฐ์ ์์์์๋ ์ต์์๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ๋๋ฌด ๋ฌด๋ฆฌ๋ ํ์ง๋ง๋ ์ต์ ์ ๋คํด์ ํํํ ๊ณต๋ถ๋ฅผ ์ด์ด๋๊ฐ์ผ๊ฒ ๋ค.
๋ค์ ํ ์ฃผ๋ ํ์ดํ ๐๐โ๏ธ