17. Programming isn’t just explaining things to the computer
but a medium for design, engineering, science, art and play.
출처 : http://programmingisterrible.com/post/40453884799/what-language-should-i-learn-first
사실 그리 이상한 일은 아닐지도
18. Tools for data analysis
Medium for design
제 경우에는
Explain things
to computer + Data
Visualization
59. (I Just) Died In Your Arms Cutting Crew
Anything For You Gloria Estefan
Beautiful Sunday Daniel Boone
All By Myself Celine Dion
Baker Street Gerry Rafferty
Beauty And The Beast Celine Dion
Because You Loved Me Celine Dion
Always On My Mind Pet Shop Boys
Befor The Next Teardro… Freddy Fender
Believe Cher
Bridge Over Troubled Water
Simon &
Garfunkel
Bohemian RhapSody Queen
Can You Feel The … Elton John
Call Me Blondie
Cant Fight This Feeling REO Spee…
And I Love You So Perry Como
Always On My Mind Willie Nelson
Angel
Sarah
McLachlan
같은 가수의 노래는 한 군집으로, 리메이크되며 장르가 바뀐 곡은 다른 군집으로
K-means Clustering(K 평균 군집)
주어진 데이터를 K개의 Cluster로 묶어주는 알고리즘
62. Servlet과 .properties 파일을 이용한 Controller
public class test extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
String request = request.getParameter("action" );
String commandAction = action_mapping.get(request);
String forward = forward_mapping.get(requestAction);
if(!commandAction.equals("")){
try {
Class action = Class.forName(commandAction);
Object actionInstance = action.newInstance();
Method m = action.getDeclaredMethod("execute", HttpServletRequest. class,
HttpServletResponse.class );
m.invoke(actionInstance, request, response);
} catch (Exception e) {
e.printStackTrace();
}
}
request.getRequestDispatcher(forward).forward(request, response);
}
Request – Logic – View 맵핑을 관리
63. @RequestMapping(value = "/myList.do", method = RequestMethod.GET)
public String myList(@ModelAttribute("userId") String owner,
Model model) {
//do something
return "myList";
}
Spring MVC를 활용할 때
annotation을 이용해 request, parameter가 자동으로 관리됨
메소드의 반환 스트링을 통해 result page까지 한번에 mapping
복잡한 Controller를 사용하지 않아도 됨
76. 지금 할 수 있는 것 보다는 하고 싶은 것을 목표로
실현가능성은 중요한 문제이지만, 기획에선 잠시 잊는 걸로
지금 아는 것보다 더 많은 걸 할 수 있다는 점
77. 기록 잘 남기기
회의록, 일정, 기획,
요구사항 명세,
UI 명세, 기능 분석 등
간략한 형태로라도
기록을 남겨야
길을 잃지 않고,
같은 논의를 반복하지
않습니다.
78. Project Scope
이번 프로젝트에서 직접 다뤄야 할 부분은
어디서 어디까지인지 명확히 선 긋기
프로젝트 주제와 목적이 명확해야
Scope도 명확해집니다.
FT도 우리 프로젝트 Scope인지 고민하던 흔적
79. 제대로 하지 못해 아쉬웠던 부분
확장성, 재사용성, 변동 가능성을 고려
디자인 패턴을 잘 알았더라면 보다 수월했을 것 같음
서로 다른 메소드 안에서 반복되는 같은 로직들
HashMap이 아니라 ArrayList를 쓰기로 계획이 바뀌는 일이 생긴다면?
이런 공통된 로직들만 따로 캡슐화 했더라면 변동 사항 걱정도 없고 가독성도 늘었을 것.
Method
A
Method
B