전체 글 51

하루 3분 네트워크

2022.06.22 [1~10장] 1. 네트워크란? 연결에 의해 무언가를 주고 받기 컴퓨터 네트워크 : 내 검퓨터와 남 컴퓨터가 통신 매체로 연결되어 데이터를 주고 받는 것. 네트워크 남 컴퓨터의 파일이라는 리소스, 내 컴퓨터의 프린터라는 리소스를 사용하게 해주는데 이런 리소스를 유용하게 활용(공유) 하게 해주는게(by데이터 통신) 네트워크의 장점. 2.데이터 통신이란? 컴퓨터 끼리 리소스를 공유하기 위해 주고 받는것. 케이블 : 컴퓨터를 연결해 데이터가 지나가는 파이프 인터페이스 : 컴퓨터와 파이프를 연결해주는 접속구(중개) 프로토콜 : 데이터를 주고 받기 위한 규칙으로 보내는 쪽과 받는 쪽이 같은 프로토콜을 사용해야됨. 3. 회선교환과 패킷교환 두대의 컴퓨터가 송수신->2개의 파이프 연결 다수의 컴퓨..

springMVC 활용 - (9) 웹 페이지 만들기

상품목록 컨트롤러 → 상품 목록 뷰 → 상품 등록 → 상품 저장 컨트롤러 → 상품 상세 뷰 ←상품상세 컨트롤러 [상품 도메인] @Data @Getter @Setter public class Item { private Long id; private String itemName; private Integer price; private Integer quantity; public Item() { } public Item(String itemName, Integer price, Integer quantity) { this.itemName = itemName; this.price = price; this.quantity = quantity; } } @Repository public class ItemReposit..

springMVC 활용 - (8) HTTP응답

[정적 리소스, 뷰 템플릿] 스프링에서 응답 데이터를 받는 방법 1. 정적 리소스 예) 웹 브라우저에 정적인 HTML, css, js을 제공할 때는, 정적 리소스를 사용 2. 뷰 템플릿 사용 예) 웹 브라우저에 동적인 HTML을 제공할 때는 뷰 템플릿을 사용 3.HTTP 메시지 사용 2. - 뷰 템플릿을 호출하는 컨트롤러 @Controller public class ResponseViewController { @RequestMapping("/response-view-v1") public ModelAndView responseViewV1() { ModelAndView mav = new ModelAndView("response/hello").addObject("data", "hello!"); return m..

springMVC 활용 - (7) 스프링 기능

★정리★ 스프링 부트가 미리 핸들러를 등록해놓으면 핸들러매핑에서 핸들러를 조회해서 핸들러어댑터 목록에서 조회해서 핸들러를 호출하고, ModelAndView를 반환하고 뷰리졸버를 호출해서 뷰 렌더 [로그] SLF4j - 인터페이스/logback - 구현체 로그 선언 밑에 셋중 하나 사용 private Logger log = LoggerFactory.getLogger(getClass()); //현재 나의 클래스 지정 private static final Logger log = LoggerFactory.getLogger(Xxx.class) @Slf4j @Slf4j //밑에 private자동으로 넣어줘 @RestController //->String이 그대로 반환 public class LogTestContro..

springMVC 활용 - (6) MVC프레임워크 구조

[MVC 프레임워크 구조] FrontController → DispatcherServlet handlerMappingMap → HandlerMapping MyHandlerAdapter → HandlerAdapter ModelView → ModelAndView viewResolver → ViewResolver MyView → View 1. 핸들러 조회: 핸들러 매핑을 통해 요청 URL에 매핑된 핸들러(컨트롤러)를 조회한다. 2. 핸들러 어댑터 조회: 핸들러를 실행할 수 있는 핸들러 어댑터를 조회한다. 3. 핸들러 어댑터 실행: 핸들러 어댑터를 실행한다. 4. 핸들러 실행: 핸들러 어댑터가 실제 핸들러를 실행한다. 5. ModelAndView 반환: 핸들러 어댑터는 핸들러가 반환하는 정보를 ModelAndV..

[스프링 DB 1편] - (3) 트랜잭션

[트랜잭션] - 두개가 모두 성공해야 성공, 한번에 커밋& 롤백 원자성: 트랜잭션 내에서 실행한 작업들은 마치 하나의 작업인 것처럼 모두 성공 하거나 모두 실패 일관성: 모든 트랜잭션은 일관성 있는 데이터베이스 상태를 유지 격리성: 동시에 실행되는 트랜잭션들이 서로에게 영향을 미치지 않도록 격리. 예를 들어 동시에 같은 데이터를 수정하지 못하도록 해야 한다. 격리성은 동시성과 관련된 성능 이슈로 인해 트랜잭션 격리 수준 (Isolation level)을 선택 지속성: 트랜잭션을 성공적으로 끝내면 그 결과가 항상 기록되어야 한다. 중간에 시스템에 문제가 발생해도 데이터베이스 로그 등을 사용해서 성공한 트랜잭션 내용을 복구 [DB연결 구조와 세션] [트랜잭션 사용] 데이터 변경 쿼리를 실행하고 데이터베이스에..

Spring 강의/DB 2022.04.20

[스프링 DB 1편] - (2) 커넥션풀과 데이터소스

[커넥션 풀] 1. 애플리케이션 로직은 DB 드라이버를 통해 커넥션을 조회(getConnection() ) 2. DB 드라이버는 DB와 TCP/IP 커넥션을 연결. 이 과정에서 3 way handshake 같은 TCP/IP 연결을 위한 네트워크 동작이 발생 3. DB 드라이버는 TCP/IP 커넥션이 연결되면 ID, PW와 기타 부가정보를 DB에 전달. 4. DB는 ID, PW를 통해 내부 인증을 완료하고, 내부에 DB 세션을 생성. 5. DB는 커넥션 생성이 완료되었다는 응답을 보냄. 6. DB 드라이버는 커넥션 객체를 생성해서 클라이언트에 반환. 커넥션을 새로 만드는 것은 과정도 복잡하고 시간도 많이 많이 소모. DB는 물론이고 애플리케이션 서버에서도 TCP/IP 커넥션을 새로 생성하기 위한 리소스를 ..

Spring 강의/DB 2022.04.20

[스프링 DB 1편] - (1) JDBC 이해

1. 커넥션 연결: 애플리케이션 서버가 db에 주로 TCP/IP를 사용해서 커넥션을 연결 2. SQL 전달: 애플리케이션 서버는 DB가 이해할 수 있는 SQL을 연결된 커넥션을 통해 DB에 전달 3. 결과 응답: DB는 전달된 SQL을 수행하고 그 결과를 응답하고 애플리케이션 서버는 응답 결과를 활용 문제는 각각의 데이터베이스마다 커넥션을 연결하는 방법, SQL을 전달하는 방법, 그리고 결과를 응답 받는 방법이 모두 다름!! 1. db를 다른 종류의 db로 변경하면 애플리케이션 서버에 개발된 데이터베이스 사용 코드도 함께 변경해야됨 2. 개발자가 각각의 데이터베이스마다 커넥션 연결, SQL 전달과 그 결과를 응답 받는 방법을 새로 학습해야됨 그래서 JDBC라는 자바 표준이 등장!! [JDBC 표준 인터페..

Spring 강의/DB 2022.04.18

springMVC 활용 - (5) mvc 프레임워크 만들기

[프론트 컨트롤러 패턴] 프론트 컨트롤러 : 그냥 서블릿. 클라이언트의 요청을 받고 요청에 맞는 컨트롤러 찾아서 호출 나머지 컨트롤러는 서블릿을 사용하지 않아도됨- 왜냐면 클라이언트에서 요청이 오면 와스서버에서 처음 들어간 데가 서블릿인데 그거를 프론트 컨트롤러라 대신 해주니까. 서블릿을 통해서 요청 매핑을 했는데 프론트 컨트롤러가 해주니까(서블릿은 url매핑해서 요청이 오면 서블릿에 처음응로 들어가는곳 ) [프론트컨트롤러 도입-v1] 1. 클라이언트가 http요청을 하면 (컨트롤러 맵을 통해서 어떤 컨트롤러가 호출되는지 찾아)프론트 컨트롤러가 요청을 받고 http매핑 정보를 가지고 컨트롤러를 매핑정보에 넣어놔. 그래서 요청이 오면 매핑 정보를 뒤져서 2. 어떤 컨트롤러를 호출할지 찾아서 호출 3.컨트롤..

[network] - (8) HTTP 헤더2 : 캐시와 조건부 요청

[캐시 기본 동작] • 데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야 됨 • 인터넷 네트워크는 매우 느리고 비쌈 • 브라우저 로딩 속도가 느림 • 캐시 덕분에 캐시 가능 시간동안 네트워크를 사용하지 않아도 됨 • 비싼 네트워크 사용량을 줄일 수 있음 • 브라우저 로딩 속도가 매우 빠름 • 빠른 사용자 경험 캐시 유효 시간이 초과하면, 서버를 통해 데이터를 다시 조회하고, 캐시를 갱신. 다시 네트워크 다운로드가 발생 캐시 유효 시간 초과해서 서버에 다시 요청하면 1. 서버에서 기존 데이터를 변경함 2. 서버에서 기존 데이터를 변경하지 않음->다시 받기 아까워 ->[검증헤더와 조건부 요청] 캐시 만료후에도 서버에서 데이터를 변경하지 않으면 데이터를 전송하는 대신에 저장해 두었던 캐..

1 2 3 4 5 6