개발기록

Goal 다형성에 대해 알아본다 오버라이딩에 대해 알아본다 오버로딩에 대해 알아본다 오버라이딩과 오버로딩이 동시에 발생한 경우는? 오버라이딩과 오버로딩을 사용한 코드 예시를 살펴본다. 객체지향의 특성 참고 [객체지향의 원리와 이해 3] 자바와 객체 지향 객체지향의 4대 특성 - 캡!상추다 캡슐화 (Encapsultation): 정보 은닉(information hiding) 상속 (Inheriance) 재사용 추상화 (Abstaction) : 모델링 다형성 (Polymorphism) : 사용 편의 클래스 vs. 객체 = 붕어빵틀 vs.붕 dev-rosiepoise.tistory.com 다형성(Polymorphism)이란? 객체지향의 4대 특성중 하나로 사용편의성을 의미하며, 하나의 객체가 여러가지 타입을 ..
자원 반납 자바 라이브러리에는 close메소드를 호출하여 직접 닫아줘야 하는 자원이 있다 ex) 대표적으로 InputStream, OutputStream, java.sql.Connection 자원반납을 해야하는 이유 접근할 때, File Descriptor를 생성해서 소모하는데 자원을 반납하지 않는경우 File Descriptor가 재활용이 되지않아 File Descriptor leak이 발생될 수 있으며 이는 어플리케이션의 문제로 이어질 수 있음 참고 멘토님 & https://docs.oracle.com/cd/E23095_01/Platform.93/ATGInstallGuide/html/s0607detectingfiledescriptorleaks01.html try-finally 방식의 코드 static..
13장 - 인터페이스와 추상클래스, enum 인터페이스에 선언되어 있는 메소드는 body가 있는가? 없음 인터페이스를 구현하는 클래스의 선언시 사용하는 예약어는 무엇인가? implements 일부만 완성되어 있는 클래스는 무엇인가? abstact 클래스 3번의 답에 있는 클래스에 body가 없는 메소드를 추가하려면 어떤 예약어를 추가해야 하는가? abstract 클래스를 final로 선언하면 어떤 제약이 발생하는가? 상속 불가 메소드를 final로 선언하면 어떤 제약이 발생하는가? overriding 불가 변수를 final로 선언하면 어떤 제약이 발생하는가? 반드시 생성과 동시에 초기화를 해줘야 함 enum 클래스 안에 정의하는 여러 개의 상수들을 나열하기 위해 상수 사이에 사용하는 기호는 무엇인가? ,..
Goal 스프링 시큐리티를 이용한 구글/네이버 로그인 연동 세션 저장소로 톰캣 / 데이터베이스 / 메모리 DB가 있으며 이 중 데이터베이스를 사용하는 이유 ArgumentResolver를 이용하면 어노테이션으로 로그인 세션 정보를 가져올 수 있다 스프링 시큐리티 적용 시 기존 테스트 코드에서 문제 해결 방법 스프링 시큐리티란? 막강한 인증(Authentication)과 인가(Authorization) 기능을 가진 프레임워크로 스프링 기반의 애플리케이션에서의 보안 표준 소셜 로그인을 사용하는 이유 OAuth 로그인 구현시 구글/네이버 등을 통해 아래의 기능을 맡기고, 서비스 개발에 집중할 수 있다 로그인 시 보안 회원가입 시 이메일 혹은 전화번호 인증 비밀번호 찾기 비밀번호 변경 회원정보 변경 예제1. 구..
Goal 서버 템플릿 엔진 엔진과 클라이언트 템플릿 엔진의 차이 머스테치의 기본 사용방법 스프링 부트에서 화면 처리 방식 js/css 선언 위치를 다르게 해서 웹 사이트의 로딩 속도 향상하는 방법 js 객체를 이용하여 브라우저의 전역 변수 충돌 문제를 회피하는 방법 템플릿 엔진이란? 지정된 템플릿 양식과 데이터가 합쳐져 HTML문서를 출력하는 소프트웨어 구분 서버 템플릿 엔진 클라이 언트 템플릿 엔진 종류 JSP, Freemarker, Velocity, Mustache, Thymeleaf 리액트, 뷰 특징 서버에서 Java 코드로 문자열을 만든 뒤 이 문자열을 HTML로 변환하여 브라우저로 전달 -> 이때, 자바스크립트 코드는 단순한 문자열 브라우저에서 화면 생성 즉, 서버에서 이미 코드가 벗어난 경우 ..
Goal 1. JPA / Hibernate / Spring Data Jpa 의 관계 2. Spring Data Jpa를 이용하여 관계형 데이터베이스를 객체지향적으로 관리하는 방법 3. JPA의 더티 체킹을 이용하여 Update쿼리 없이 테이블 수정 4. JPA Auditing을 이용하여 등록/수정 시간을 자동화하는 방법 JPA 란? 객체지향적으로 프로그래밍을 하고 SQL에 종속적인 개발을 하지 않도록 중간에서 패러다임 일치를 시켜주기 위한 기술 기존의 개발 문제점 RDB(관계형 데이터베이스가) 중심이 되면서 코드가 SQL 중심이 되어감 각 테이블마다 기본적인 CRUD SQL 매번 생성해야하는 번거러움 관계형 데이터베이스와 객체지향 프로그래밍 언어의 패러다임의 불일치 문제 예제1. 프로젝트에 Spring ..
Goal : 스프링부트 환경에서 테스트 코드를 작성해본다. 단위테스트 란? TDD의 첫 번째 단계인 기능 단위의 테스트 코드를 작성하는 것을 이야기한다. TDD와는 다른 이야기! 기존의 개발 진행 방식 코드 작성 프로그램(Tomcat) 실행 Postman과 같은 api 테스트 도구로 http요청 요청 결과를 system.out.println()으로 눈으로 검증 결과가 다르면 다시 프로그램(Tomcat)을 중지하고 코드 수정 -> 테스트 코드가 없다보니 수정된 코드를 확인할 수 없어 2~5의 단계를 반복해야하는 문제 -> 톰캣 재시작은 많은 시간 소요 -> 눈으로 확인하는 수동 검증 필요 -> 기존에 잘 되던 기능의 문제 (사이드 이펙트) 백문이 불여일타. 코드로 개념을 이해해보자! 예제1. Hello C..
· Spring/mvc
Goal : 뷰 리졸버가 어떻게 사용되는지 알아본다. OldController hello/servlet/web/springmvc/old/OldController.java @Component("/springmvc/old-controller") public class OldController implements Controller { // @Component("/springmvc/old-controller")를 해주면 스프링빈의 이름이 /springmvc/old-controller가 된다 @Override public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { Sys..
· Spring/mvc
Goal : 핸들러 매핑과 핸들러 어댑터가 어떻게 사용되는지 알아본다. 핸들러 매핑과 핸들러 어댑터 OldController hello/servlet/web/springmvc/old/OldController.java @Component("/springmvc/old-controller") public class OldController implements Controller { // @Component("/springmvc/old-controller")를 해주면 스프링빈의 이름이 /springmvc/old-controller가 된다 @Override public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse respon..
· Spring/mvc
스프링 MVC 전체 구조 직접 만든 프레임워크 아키텍처 스프링 MVC 아키텍처 직접 만든 프레임워크와 스프링 MVC 비교 직접 만든 프레임워크 스프링 MVC FrontController DispatcherServlet handlerMappingMap HandlerMapping MyHandlerAdapter HandlerAdapter ModelView ModelAndView viewResolver ViewResolver MyView View DispatcherServlet 구조 살펴보기 org.springframework.web.servlet; 클래스 검색 : command+o 스프링 mvc도 프론트 컨트롤러 패턴으로 구현되어 있다. 스프링 mvc의 프론트 컨트롤러가 바로 디스패처 서블릿 Dispatche..
dev_rosieposie
'개발기록' 태그의 글 목록