π½οΈ νλ‘μ νΈ μκ°
μ λ² λ―Έλ νλ‘μ νΈλ₯Ό ν λμλ mvcλ₯Ό μ΄μ©ν΄μ λ°±μμλ§ κ΅¬νλκ² λ§λ€μμλ€.
κ·Έλλ λ°°μ΄ κ² νμ μ μ΄λΌ μ£Όμ λ₯Ό μ νλ κ²λ λ²μκ° μ’μμ μκ°λ³΄λ€ μ½κ² 골λΌμ ν μ μμλ€.
(μ§λ λ―Έλ νλ‘μ νΈλ 3μΌ μ λμκ³ , μ»€νΌ κ΅¬λ§€νκΈ° νλ‘μ νΈλ₯Ό λ§λ€μμλ€.)
νμ§λ§ μ΄λ² νλ‘μ νΈμμλ νλ‘ νΈμμλ 보μ¬μ§κ³ λ°±μ λν΄μλ λ λ°°μ κΈ° λλ¬Έμ μ£Όμ λ²μκ° λμ΄μ Έμ μ νλ λ°μ κ½€ μ€λ μκ°μ΄ κ±Έλ Έλ€.
νμ λμ μ¬λ¬ ν보λ€μ΄ λμλ€.
- ν곡μ¬
- λ³μ μ 보 μ€ν api
- μ¬λ΄ λ©μ μ
- λ°μ΄νΈ λ§€μΉ μμ€ν
- μ λ§μ§ μ 보 μ¬μ΄νΈ
- μ¨λΌμΈ μ½κ΅
- μν νκΈ°
곡곡 λ°μ΄ν°λ₯Ό λ€λ£¨λ μμ μ λ°μκΈ° λλ¬Έμ μ΄λ₯Ό νμ©ν΄μ νλ‘μ νΈλ₯Ό λ§λ€κ³ μΆμλ€.
νμλ€ λͺ¨λ μνμ κ΄μ¬μ΄ μκ³ apiλ₯Ό λΆλ¬μ¬ μ μκ³ μνμ λν νκΈ°λ₯Ό λ¨κ²¨λ³΄μλ μκ²¬μ΄ λμλ€.
κ·Έλμ μνμ λν μ 보λ₯Ό 보μ¬μ£Όκ³ νκΈ°λ₯Ό λ¨κΈΈ μ μλ μΉνμ΄μ§λ₯Ό λ§λ€κΈ°λ‘ κ²°μ νλ€.
π νλ‘μ νΈ κΈ°κ°
2023λ 4μ 19μΌ ~ 2023λ 5μ 4μΌ (κΈ°κ° : 2μ£Ό)
4μ 19μΌ : μ£Όμ μ νκΈ°
4μ 20μΌ : DB ν μ΄λΈ μ€κ³, νΈλ€λ¬λͺ , μλλ¦¬μ€ νλ¦ μ§κΈ°
4μ 21μΌ : ꡬν λΆλΆ λλκΈ°, DB 쿼리 μμ±, VO & DAO & SERVICE λ§λ€κΈ°
4μ 24~28μΌ : jsp, back, front ꡬννκΈ°
4μ 29~30μΌ : λλ²κΉ
5μ 1~2μΌ : λλ²κΉ λ° λν μΌ κ΅¬ν
5μ 3μΌ : λ°ν μ€λΉ & νλ‘κ·Έλ¨ μ΅μ’ μ€ν
5μ 4μΌ : λ°νπ
π©π» νμ μν
μ°λ¦¬ νμ μ΄ 5λͺ μ΄μκ³ 5κ°λ‘ λλ μ μ§ννμ§ μκ³ ν¬κ² μΈ κ°μ ννΈλ‘ λλμ΄μ μμ μ μ§ννμλ€.
- μ μ : νμ κ΄λ¦¬ + λ§μ΄νμ΄μ§ + λ€λ₯Έ μ μ μ ν (λ + μ°λ)
- μν : μν api λΆλ¬μ€κΈ° + λ³μ λ¨κΈ°κΈ° + μκ³ νΈ μ¬μ (νλ + μλ)
- νκΈ° : ν μ€ ν μμ± + git (μλ)
πͺ μ¬μ© μΈμ΄
JAVA, Oracle, TMDB API, HTML, CSS, JavaScript, (JQuery)
κΉνλΈ μ‘°κ°λ³ μ½λ 보λ¬κ°κΈ°
β¨ λͺ©ν κΈ°λ₯
μνλ κΈ°λ₯μ λ§μΈλλ§΅μΌλ‘ μ 리νλ€.
π οΈ μ€κ³
κΈ°λ₯μ λλ΅ μ νκ³ λμ μ€κ³μ λ€μ΄κ°λ€.
νμν κΈ°λ₯μ λ°λ₯Έ μ€κ³κ° μλλΌ λ·° νμ΄μ§μ λ³΄μΌ λΆλΆ(κΈ°λ₯)μ μκ°νλ©΄μ μ€κ³λ₯Ό νμλ€. λ·° νμ΄μ§μ νμν νΈλ€λ¬, μ΄λ€ ν μ΄λΈμ΄ νμνμ§ μ νκ³ κ΅¬νμ λ€μ΄κ°λ€.
miro
miroλ₯Ό μ΄μ©νμ¬ νλ‘ν νμ μ λ§λ€μλ€.
μ 체 νλ¦μ νμ΄ν λͺ¨μμΌλ‘ λνλ΄μ£Όμλ€.
μ΄μ μμΈν λ€μ¬λ€λ³΄λ©΄ ...
μν νμ΄μ§
λ§μ΄νμ΄μ§
ν μ€ ν μμ±
notion
λ Έμ μΌλ‘ μΌμ μ΄λ νλ‘μ νΈμ νμν λ΄μ©λ€μ μ 리νμλ€.
ποΈ μν api
https://www.themoviedb.org/?language=ko
The Movie Database (TMDB)
Welcome. Millions of movies, TV shows and people to discover. Explore now.
www.themoviedb.org
https://developers.themoviedb.org/3/getting-started/introduction
API Docs
developers.themoviedb.org
μν apiλ‘λ tmdbλ₯Ό 골λλ€.
μ μΌ λ§μ΄ μ¬μ©νκ³ μλ tmdbλ₯Ό 골λΌμ μ¬μ©νλ€.
π ꡬν & λ΄κ° λ§λ κΈ°λ₯
β λ΄ μ 보 μμ (λΉλκΈ°)
β‘ λ§μ΄νμ΄μ§
- μ°ν κΈ°λ‘ λ³΄κΈ° + μ° μ·¨μ κΈ°λ₯ (λΉλκΈ°)
- λ³μ κΈ°λ‘ λ³΄κΈ° + λ³μ λ³λ‘ κΈ°λ‘ λ³΄κΈ° (λΉλκΈ°)
- μ½λ©νΈ κΈ°λ‘ λ³΄κΈ°
- μ½λ©νΈ ν μ€ λμ΄κ°λ©΄ ... μΌλ‘ 보μ΄κ² λ§λ€κΈ°
- νλ‘μ° μΆκ° + μ·¨μ
- ν μ€ μκ° μΆκ° + μμ + μμ
β’ λ€λ₯Έ μ μ νμ΄μ§
- νλ‘μ° μΆκ° + μ·¨μ
- μ°ν κΈ°λ‘ λ³΄κΈ°
- λ³μ κΈ°λ‘ λ³΄κΈ°
- μ½λ©νΈ κΈ°λ‘ λ³΄κΈ°
λ΄ μ 보 μμ
μ€μ λ²νΌμ λλ₯΄λ©΄ λμ λλ€μμ μμ ν μ μλ€.
μμ μ ν λμ λΉλ°λ²νΈλ₯Ό μ λ ₯ν΄μΌ νλ€.
λ΄ μ 보 μμ - ν μ€ μκ° μΆκ° / μμ / μμ
ν μ€ μκ°λ₯Ό μμ±νλ 곡κ°μ΄λ€.
λ€λ₯Έ λΉλκΈ°λ³΄λ€ μ΄ ν μ€ μμ±νλ λΉλκΈ°κ° μ μΌ λ³΅μ‘νκ³ μ΄λ €μ λ€.
κ³λ¨μμΌλ‘ μκ°νλ©΄μ μμ±νμλ€.
μ무 ν μ€ μκ°κ° μλ€λ©΄ μΆκ° λ²νΌμ΄ 보μ΄κ³
μ무 ν μ€ μκ°κ° μλ€λ©΄ μμ / μμ λ²νΌμ΄ 보μ΄κ² μ€μ νλ€.
μν - μ° κΈ°λ₯
μν λͺ©λ‘μμ μν ν¬μ€ν°λ₯Ό λλ₯΄λ©΄ μνμ λν μΌμ λ³Ό μ μλ€.
κ·Έκ³³μμ μ°μ ν μλ μκ³ , λ³μ μ λ¨κΈΈμλ μκ³ , νκΈ° μ½λ©νΈλ₯Ό μμ±ν μλ μλ€.
μν - κ²μ / νκΈ° μμ±
μμ±ν λ μ€ν¬μΌλ¬κ° μλ€λ©΄ μ€ν¬μΌλ¬ 체ν¬λ₯Ό ν ν κΈμ μμ±νλ€.
μ€ν¬μΌλ¬λ‘ νκΈ°λ₯Ό μμ±νλ©΄ λ€λ₯Έ μ¬μ©μλ μ€ν¬μΌλ¬κ° μλ νκΈ°λ₯Ό λ³Ό λ μ΄μ€μΌλ‘ νμΈμ ν΄μ λ³Ό μ μλ€.
μ€ν¬μΌλ¬λ₯Ό λΉνμ§ μκ² νκΈ° μν΄ μ΄ κΈ°λ₯μ λ£μλ€.
λ§μ΄νμ΄μ§ - λ€λ₯Έ μ μ νμ΄μ§ 보기
λ΄κ° νλ‘μ ν λ€λ₯Έ μ μ νμ΄μ§μ΄λ€.
νλ‘μ° μΆκ°, μ·¨μλ₯Ό ν μ μμΌλ©° νλ‘μ ν μμ΄λμ λ³μ , μμ, νκΈ° 리μ€νΈλ₯Ό λ€ λ³Ό μ μλ€.
νμκ°μ
κ°μ μ νλ©΄ λ‘κ·ΈμΈ νμ΄μ§λ‘ λμ΄κ°κ² ꡬνμ νκ³ ,
μμ΄λ μ€λ³΅, λΉλ°λ²νΈ νμΈ κΈ°λ₯μ λ£μλ€.
λμ μμ리μ€νΈ + λ³μ 리μ€νΈ 보기
λ§μ΄ νμ΄μ§μμ λμ μμ리μ€νΈ, λ³μ 리μ€νΈ, ν기리μ€νΈλ₯Ό λ³Ό μ μλ€.
λ보기 λ²νΌμ λλ¬ λμ λͺ©λ‘λ€μ μ 체 λ³Ό μ μμΌλ©°
μ°ν μνλ μμ리μ€νΈμμ μμ ν μ μλλ‘ λ§λ€μλ€.
첫 νλ©΄
첫 νλ©΄μ λ°°λ μ¬λ¬κ°λ₯Ό λ£μ΄ μ¬λΌμ΄λ νμμΌλ‘ 보μ¬μ€¬λ€.
μν κ²μ - μ 보 보기
μν κ²μ κΈ°λ₯μ λ£μλ€.
μλ₯Ό λ€μ΄ λ₯ν° μ€νΈλ μΈμ§ λ₯Ό κ²μνμ λ λμ΄μ°κΈ°λ₯Ό λ£μΌλ©΄ λ₯ν° λ§ κ²μλκ³ μ€νΈλ μΈμ§λ κ²μμ΄ μ λμλ€.
κ·Έλμ λμ΄μ°κΈ° λΆλΆμ %20μΌλ‘ λ°κΏμ€μ κ²μν μ μκ² λ³κ²½νλ€.
public class Search implements Handler {
@Override
public String process(HttpServletRequest request, HttpServletResponse response) {
// TODO Auto-generated method stub
String text = request.getParameter("query");
String[] array=text.split("");
String text2="";
for(int i=0; i<array.length;i++) {
if(array[i].equals(" ")) {
text2+="%20";
}else {
text2+=array[i];
}
}
System.out.println("λ°μκ° :"+text);
System.out.println("κ²μμ΄ :"+text2);
URL url;
try {
url = new URL(
"https://api.themoviedb.org/3/search/movie?api_key=c8a3d049a6a74a627e4a2fa5bfd674f6&language=ko&query="
+text2);
// μΉ μ£Όμλ‘ μ°κ²°
URLConnection conn = url.openConnection();
// getInputStream(): μΉνμ΄μ§μμ λ°μ΄ν°λ₯Ό μ½μ μ μλ μ€νΈλ¦Ό λ°ν
InputStream is = conn.getInputStream();
// json νμΌ λΆμν νμ μμ±
JSONParser parser = new JSONParser();
// μμ±ν νμλ‘ json νμΌ λΆμ
JSONObject obj = (JSONObject) parser.parse(new InputStreamReader(is));
JSONArray arr = (JSONArray) obj.get("results");
ArrayList<movieVo> list = new ArrayList<>();
for(int i=0; i<arr.size(); i++) {
JSONObject o = (JSONObject) arr.get(i);
String id = Long.toString((Long) o.get("id"));
String poster = (String) o.get("poster_path");
String title = (String) o.get("title");
String overview = (String) o.get("overview");
String release_date = (String) o.get("release_date");
list.add(new movieVo(id, poster, title, overview, release_date));
}
request.setAttribute("searchlist", list);
request.setAttribute("text", text);
is.close();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "/search/search.jsp";
}
}
μν λͺ©λ‘ UI
hoverμ 컀μ§κ² νκ³ νμ΄μ§ κΈ°λ₯μ λ£μλ€.
π€μ΄λ €μ λ μ & λκΌλ μ
λ§€λ² νλ‘μ νΈλ₯Ό νλ©΄μ λλΌμ§λ§ μ€κ³κ° κ°μ₯ μ€μν κ² κ°λ€.μ΄λ² νλ‘μ νΈμμλ ν μ΄λΈλͺ , λ³μλͺ μ λ€ μ νκ³ μμν΄μ μμνκ² μ§νμ΄ λ κ² κ°λ€.
κ·Έλ¦¬κ³ μΌμ μ μ νλλ° μ΄μμ μΈ λͺ©νμμ 80%μ λλ§ μ‘μΌλΌλ μ‘°μΈμ λ΄€μλλ° μ κ·Έλ° λ§μ νλ μ§ μ κ² κ°μλ€.μ¬κΈ°μ μ‘°κΈλ§ λ λΉ‘μΌ μΌμ μ΄μλ€λ©΄ μκ°κ³Ό λ§μμ μ¬μ κ° μμμ κ² κ°λ€.
κ·Έλ¦¬κ³ κ΅¬νμ μμ΄μλ λ°±κΈ°λ₯ ꡬνμ μ΄λ ΅μ§ μμλ€.
λ€λ§ ꡬνν κ±Έ λΉλκΈ°λ‘ λ³΄μ¬μ£Όκ³ μΆμ΄μ Jqueryλ₯Ό μ΄μ©νλλ° μ΅μμΉ μμμ μ¬λ¬λ² κ³ μ³μΌ νμλ€.
ν루μ λͺ μκ° λμ μ‘κ³ μμκΈ° λλ¬Έμ Jqueryμ ajaxμ λν μ΄ν΄λκ° μ¬λΌκ°κ² λλ€.
λν, μμ¬μ λ μ μ CSSμλ€.νμ ν λ§λ κΈμ¨μ²΄λ μμ μ νκΈ΄ νμ§λ§ κ°μ λ§‘μ λΆλΆμ κ°μ νλ‘ νΈ κ΅¬νμ νλλ° μ¬λλ§λ€ μ€νμΌμ΄ λ¬λΌμ λΉμ·νμ§λ§ μ‘°κΈμ λ€λ₯Έ λλμ CSSκ° λμλ€. (λ€μ±λ‘μ°λ μ€νλ € μ’μ건κ°?)
κ·Έλ¦¬κ³ z-indexμ λν΄μ.. λ€μ μκ² λλ€. κ·Έλ¦¬κ³ λΆνΈμ€νΈλ©λ..!
λ΄κ° μ΄ CSSμ½λκ° μ λλ‘ μλμ΄ μ λΌμ μ κ·Έλ°κ°νκ³ μ°Ύμλ΄€λλ z-index μμμ λ°λ €λ κ²λ μμκ³ , λΆνΈμ€νΈλ© λλ¬Έμ λ°λ €λ κ²λ μμλ€.
κ·Έλμ CSSλ₯Ό μΈ λ λ€μ ν λ² μκ°νκ³ μ¨μΌν κ² κ°κ³ νμλ€μ΄λλ μ μμν΄μ μ¨μΌ ν κ² κ°λ€.
μ°λ¦¬ νμ λΆμκΈ°λ λ무 μ’μλ€.
λ€λ€ μ±κ²©μ΄ κΈμ μ μ΄μκ³ , λ€λ€ μ견μ μμ©ν μ€ μκ³ κ³ μ§νλ μ¬λμ΄ μμκΈ° λλ¬Έμ μ νκ² μ νλ¬κ°λ€.
μλ‘μ μ± μ‘°ν©μ΄ μ’μμ λ§μ°°μ΄ μμ΄ μ’κ² νλ‘μ νΈλ₯Ό λ§λ¬΄λ¦¬ ν μ μμλ€.
'πΏππππππ > πΊπΎπππ° πππ πΏππππππ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
USCREAM - λ§€μ₯ & μν κ΄λ¦¬ μΉ νλ‘μ νΈ (1) | 2023.07.27 |
---|