본문 바로가기

Develop72

[Java] Set 메서드 HashSet 1. HashSet 선언 HashSet set = new HashSet(); HashSet set1 = new HashSet(set1);//set1의 모든 값을 가진 HashSet생성 HashSet set = new HashSet(Arrays.asList(1,2,3));//초기값 지정 HashSet set = new HashSet(10);//초기 용량(capacity)지정 HashSet set = new HashSet(10, 0.7f);//초기 capacity,load factor지정 보통 HashSet 변수명 = new HashSet();으로 선언하면 된다. 2. HashSet 값 추가 add() HashSet set = new HashSet(); //HashSet생성 set.add(1).. 2024. 4. 15.
[Java] List 메서드 주요 메서드 .add((index), val): 순서대로 리스트를 추가, 배열 사이즈 초과 시 초기 설정된 사이즈만큼 자동으로 사이즈가 증가함, 인덱스를 추가로 지정해주면 해당 인덱스에 값을 삽입 .get(index): 해당 인덱스의 값 반환 .set(index, val): 인덱스로 값 변경 .indexOf(val): 값을 제공하면 해당 값의 첫번째 인덱스를 반환 .lastindexOf(val): 해당 값의 마지막 인덱스 반환 .remove(index or val): 해당 인덱스의 값 or 해당 값 중 첫번째 값 삭제 .contains(val): 해당 값이 배열에 있는지 검색해서 true / false 반환 .containsAll(val1, val2...): argument로 제공한 컬렉션의 모든 값이 .. 2024. 4. 11.
[Java] Map 메서드 HashMap 1. put(K key, V value) 키와 값을 맵에 저장 한다. 키가 존재하면 새값으로 대체된다. Map map = new HashMap(); map.put("apple", 50); map.put("banana", 30); 2.get(Object key) 지정된 키에 대응하는 값을 반환하다. 키가 없으면 null을 반환 int price = map.get("apple"); // 50 3.remove(Object key) 키와 그에 대응하는 값을 제거 map.remove("banana"); 4.cotainsKey(Object key) Map에 지정된 키가 존재하는지 여부를 반환 boolean hasApple = map.containsKey("apple"); // true 5.contai.. 2024. 4. 11.
[Spring/MVC] 스프링 MVC 기본 기능 로깅 import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class LogTestController { private final Logger log = LoggerFactory.getLogger(LogTestController.class); @RequestMapping("/log-test") public String logTest() { String name = "spring"; log.inf.. 2024. 3. 21.
[Spring/MVC] 스프링 MVC 구조 SpringMVC 구조 DispatcherServlet.doDispatch() 서블릿 등록 → DispatcherServlet 도 부모 클래스에서 HttpServlet을 상속 받아서 사용하고, 서블릿으로 동작한다. protected void doDispatch(HttpServletRequest request, HttpServletResponse response) throws Exception { HttpServletRequest processedRequest = request; HandlerExecutionChain mappedHandler = null; ModelAndView mv = null; // 1. 핸들러 조회 mappedHandler = getHandler(processedRequest); i.. 2024. 3. 21.
[Spring/MVC] MVC 프레임워크 프론트 컨트롤러 패턴 프론트 컨트롤러 도입 - v1 구조 View 분리 - v2 구조 모든 컨트롤러에서 뷰로 이동하는 부분에 중복이 있고, 깔끔하지 않다. String viewPath = "/WEB-INF/views/new-form.jsp"; RequestDispatcher dispatcher = request.getRequestDispatcher(viewPath); dispatcher.forward(request, response); Model 추가 - v3 구조 서블릿 종속성 제거 → 컨트롤러 입장에서 HttpServletRequest, HttpServletResponse 가 꼭 필요할까? 요청 파라미터 정보는 자바의 Map 으로 대신 넘기면 컨트롤러가 서블릿 기술을 몰라도 동작이 가능하다. 뷰 이름.. 2024. 3. 21.
[Spring/MVC] MVC 패턴 서블릿과 JSP (JAVA Server Page)의 한계 서블릿으로 개발할 때는 뷰(View)화면을 위한 HTML 만드는 작업이 자바 코드에 섞여서 지저분했다. JSP를 사용한 덕분에 뷰를 생성하는 HTML 작업을 깔끔하게 가져가고, 중간중간 동적으로 변경이 필요한 부분에만 자바 코드를 적용했다. 그런데 이렇게 해도 해결되지 않는 것이 많다. MVC 패턴의 등장 비지니스 로직은 서블릿 처럼 다른곳에 처리하고, JSP는 목적에 맞게 HTML로 화면(View)을 그리는 일에 집중하도록 하자. Model Vew Controller 컨트롤러 : HTTP 요청을 받아서 파라미터를 검증하고, 비즈니스 로직을 실행한다. 그리고 뷰에 전달할 결과 데이터를 조회해서 모델에 담는다. 모델 : 뷰에 출력할 데이터를 담아둔다.. 2024. 3. 21.
[Spring/MVC] HttpServletRequest,Response, HTTP 요청 데이터 HttpServletRequest - 개요 HttpServletRequest 역할 다음과 같은 HTTP 요청 메시지를 편리하게 조회할 수 있다. HTTP 요청 메시지 Start line HTTP 메소드 URL 쿼리 스트링 스키마, 프로토콜 헤더 헤더 조회 바디 form 파라미터 형식 조회 message body 데이터 직접 조회 HttpServletRequest - 기본 사용법 Start line 정보 protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { printStartLine(request); } //Start-line 정보 private .. 2024. 3. 21.
[Spring/MVC] 웹 애플리케이션 정적 리소스 고정된 HTML 파일, CSS, JS, 이미지, 영상등 게종 주로 웹 브라우저 HTML 페이지 동적으로 필요한 HTML 파일을 생성해서 전달 웹 브라우저 : HTML 해석 HTML API HTML이 아니라 데이터를 전달 주로 JSON 형식 사용 SSR (서버 사이드 렌더링) HTML 결과를 서버에서 만들어서 웹 브라우저에 전달 주로 정적인 화면에 사용 관련기술 : JSP, 타임리프 (백엔드) CSR (클라이언트 사이드 렌더링) HTML 결과를 자바스크립트를 사용해 웹 브라우저에서 동적으로 생성해서 적용 주로 동적인 화면에 사용하고 웹 환경을 앱처럼 필요한 부분부분 변경 가능 ex) 구글 지도, Gmail 관련기술 : React, Vue.js (프론트) 서블릿 자바를 사용하여 웹페이지를 동적으.. 2024. 3. 20.
[JPA/기본편] 객체지향 쿼리 객체지향 쿼리 EntityManager.find() 메소드를 사용하면 식별자로 엔티티 하나를 조회할 수 있다. 하지만 이 기능만으로 애플리케이션을 개발하기는 어렵다. 객체지향 쿼리 소개 다음은 JPA가 공식 지원하는 기능이다. JPQL Criteria 쿼리 : JPQL을 편하게 작성하도록 도와주는 API, 빌더 클래스 모음 네이티브 SQL : JPA에서 JPQL 대신 직접 SQL을 사용할 수 있다. 다음은 JPA가 공식 지원하지는 않지만 알아둘 가치가 있다. QueryDSL : Criteria 쿼리처럼 JPQL을 편하게 작성하도록 도와주는 빌더 클래스 모음, 비표준 오픈소스 프레임워크 JDBC 직접 사용, MyBatis 같은 SQL 매퍼 프레임워크 사용 : 필요하면 JDBC를 직접 사용할 수 있다. JP.. 2024. 3. 20.