본문 바로가기

🚀 부트캠프 - PLAYDATA

[playdata] mini_project 03 - spring으로 변경 프로젝트 소개 및 배경 : 기존의 쇼핑몰을 MVC패턴으로 구성해뒀던 것을 sts를 활용하여 스프링 구조로 변경하여 코드의 유지보수성을 향상 시키고자 함. 변경된 부분 - 기존의 JDBC 방식을 Mybatis로 변경함. - 기존 Servlet을 Spring의 @어노테이션을 활용하여 Spring MVC구조로 변경함. 구조 변경 계기 및 필요성 - 코드의 유지보수성 향상 - 의존성 주입 - 트렌젝션을 활용 - 비즈니스 로직 구현에 집중 변경된 아키텍처 및 구조 변경 전 ) 변경 후 ) 의존성 주입 및 IoC 컨테이너 - Java 기반 설정 Java 클래스를 사용하여 빈들을 정의하고 구성함. @Controller @RequestMapping("/cart") public class CartController { .. 더보기
플레이데이터 백엔드 개발 부트캠프 10주차 회고록 지난 한 주 Log4j.xml 파일을 활용하여 로그를 찍는 방법에 대해 배웠다. 각각의 코드가 어떤 의미인지 분석하는 과정에서 log에 대한 이론적인 내용을 학습하였다. 로그를 찍어보니 일일이 System.out.println()을 찍어보지 않아도 어떤 메서드가 호출됐고 어떤 파라미터가 넘겨졌는지 확인할 수 있어 편리했다. tiles, 다중 파일 업로드, 썸네일 표기 등에 대해서 실습해 보았다. 그동안 복잡하게 반복적으로 했던 일들을 편리하게 처리하는 과정이 흥미로웠다. REST API 에 대해서 배웠다. 아직 정확하게 어떤 것인지 감이 잘 잡히지 않는다. 책을 보고 조금 더 공부해 봐야겠다는 생각이 들었다. 주말에 운동을 했다. 굽어있던 몸이 활짝 펴지는 기분이 들어 상쾌했다^^ 점점 그동안 했던 복잡.. 더보기
[Spring] REST API REST API란? : REST API란 대중적으로 가장 많이 사용되는 애플리케이션 인터페이스이다. 이 인터페이스를 통해서 클라이언트는 서버에 접근하고 자원을 조작할 수 있다. 1. REST 란? : Representational State Transfer 의 약자로, WWW와 같은 분산 하이퍼미디어 시스템 아키텍쳐의 한 형식이다. 주고받는 자원 (Resource)에 이름을 규정하고 URI에 명시해 HTTP메서드 (GET, POST, PUT, DELETE)를 통해 해당 자원의 상태를 주고 받는 것을 의미한다. ① 주고받는 자원(Resource)에 이름을 규정 (AJAX에서 데이터 형식 지정) ② URI에 명시 ③ HTTP Method Type 명시 (GET, POST, PUT, DELETE) 모바일 기기.. 더보기
[Spring] RedirectAttributes / 로그인 기능 구현 @Override @RequestMapping(value = "/member/login.do", method = RequestMethod.POST) public ModelAndView login(@ModelAttribute("member") MemberVO member, // 1. RedirectAttributes rAttr,// 2. HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView mav = new ModelAndView(); memberVO = memberService.login(member);// 3. // 4. if (memberVO != null) { HttpSession sessio.. 더보기
플레이데이터 백엔드 개발 부트캠프 9주차 회고록 지난 한 주 STS Spring transaction 사용하기 Spring xml 여러 개... 회원정보 관리 Spring MVC로 변환 (@어노테이션 사용법 등) 지난주는 회고록에 운동을 하겠다고 안 써서 그런지 운동을 사실 못했다. ㅎ 이번주에는 하기 위해서 회고록에 다시 적어본다. 그동안 진도를 못 나갔던 spring을 배웠는데 xml 설정 파일들이 점점 늘어나서 많이 헷갈리는 것 같다. 나만의 생각 방법을 터득해서 익혀야겠다! 혼자서 공부하며 조금 더 시행착오를 겪고 점점 발전을 해야 하는 것 같아 혼자 노력을 해보는 중인데 오히려 더딘 게 아닐까 고민이다. 2달이 다 지나가는데 아직도 어떻게 공부하는 건지 모르겠다^^ 아쉬웠던 점 노트북이 고장이 났다. 별 일 아닌데 사기가 저하 되어서 금요일 .. 더보기
플레이데이터 백엔드 개발 부트캠프 8주차 회고록 지난 한 주 세번째 미니프로젝트 발표 스프링 프레임워크 (MCV, AOP,DI, IoC) 학습 스프링 JDBC 다음 것들을 학습했다. 미니 프로젝트를 마치고 MVC 패턴으로 분리하는 과정에서 정확하게 숙지하지 못해 스스로에게 조금 실망하여 최종본을 완성하고 혼자서 조금 더 수정하며 정확하게 이해할 수 있도록 노력했다. 그 과정에서 그동안 내가 부족했던 매개변수나 다중 클래스에 대해서 이해할 수 있었던 것 같다. 또한 웹과의 소통 과정에서도 어떻게 정보를 가져와 사용하는지 정확하게 알게된 것 같다. 예를들면 JSP에서 사용자의 입력값을 받아 request객체에 넣어 받아왔음에도 불구하고 받아온 정보를 꺼내서 사용하지 않아 계속 null값이 나오기도 했다. 정말 어떻게 보면 기본적인 부분인데 아직도 헷갈려 .. 더보기
[Spring] 스프링 AOP 기능 관점 지향 프로그래밍의 등장 모든 웹 애플리케이션은 로깅 기능을 적용해 사용자의 접속 내역을 로그로 기록 그 외, 트랜잭션, 예외처리, 이메일 통보 기능을 모든 웹 애플리케이션에서 공통으로 사용하는 기능 따라서 웹 애플리케이션에 주기능을 추가할 때마다 앞에서 언급한 공통 기능도 일일이 구현해주어야 한다. 하지만 이는 결국 배보다 배꼽이 더 큰 결과를 초래 스프링에서는 이런 문제를 관점지향 프로그래밍으로 해결할 수 있다. AOP는 메서드 안의 주기능과 보조기능을 분리한 후 선택적으로 메서드에 적용해서 사용한다는 개념 AOP를 사용하면 전체 코드에 흩어져 있는 보조 기능을 하나의 장소에 모아서 관리할 수 있다. 또 보조 기능을 자신이 원하는 주 기능에 선택적으로 적용할 수 잇어 코드가 단순해지고 가독성도 향.. 더보기
플레이데이터 백엔드 개발 부트캠프 7주차 회고록 지난 한 주 답변형 게시판을 구현하는 과제들을 했다. 아직 데이터를 쫒아가는 것이 어렵게 느껴지긴 했지만, 일단 무작정 따라가고 지난 코드들을 다시 꺼내보면서 익히는 데 중점을 두면서 공부했다. 미니프로젝트가 수, 목요일 부터 시작되었다. 과제로는 강사님이 주신 코드를 모델2 방식인 MVC패턴에 맞게 프로젝트를 재구성하는 것이었다. 강사님께서 제공해주신 것은 하나의 컨트롤러가 쇼핑몰의 모든 부분의 기능을 처리하는 구조였다. 이와 같은 구조는 나중에 한 기능에 문제가 생겼을 때 보수하기 까다로운 구조라고 한다. 아직 잘 모르는 나는 강사님이 주신 코드가 훨씬 깔끔했던 것 같은데… 시간이 지나면 알게 되겠지? ㅎㅎ 아쉬웠던 점 역시 아쉬운 점인 한 두개가 아니다. 요즘은 못하겠다는 생각이 들면 한 없이 우울.. 더보기