본문 바로가기

분류 전체보기62

[Spring boot] 3-tier 구성 방식 스프링 프로젝트를 3-tier로 구성하는 일반적인 이유는 유지보수에 있다. 각 영역을 독립적으로 설계해서 나중에 특정 기술이 변하더라도 필요한 부분만 교체하면 되기 때문이다. 따라서 각 영역은 설계 당시부터 영역을 구분하고, 해당 연결 부위는 인터페이스를 이용해서 설계한다. Presentation Tier (화면 계층) 화면에 보여주는 기술을 사용하는 영역이다. 컨트롤러에서 사용자의 요청에 맞는 응답처리를 진행한다. HTML 엔진 (thymeleaf), HTML 등이 담당한다. Spring MVC 객체를 말하기도 하며, 프론트 컨트롤러 (DispatcherServlet), 컨트롤러, 뷰가 포함된다. 서비스 계층, 데이터 엑세스 계층에서 발생하는 Exception을 처리한다. @Controller 어노테이.. 2022. 6. 4.
[Spring boot] Front-Controller 패턴 (스프링 MVC) MVC 모델이란? MVC (Model - View - Controller) 모델은 사용자 인터페이스, 데이터 및 논리 제어를 구현하는 데 사용되는 소프트웨어 디자인 패턴이다. MVC 패턴을 사용하면 business logic과 presentation logic을 분리하기 쉽고 유지보수가 편리해진다. Model 모델은 데이터를 조회했을 때 결과를 담을 수 있는 저장공간이 모여있는 클래스를 말한다. 즉 애플리케이션이 포함해야 할 데이터가 무엇인지를 정의한다. View 화면 구현(html, jsp, css 등) 방식을 정의한다. Controller 데이터베이스에 접근하는 메서드들이 모여있는 곳이다. 애플리케이션의 사용자로부터 입력에 대한 응답으로 모델, 뷰를 업데이트하는 로직을 포함한다. 스프링 프로젝트에서 .. 2022. 6. 4.
네트워크 계층의 역할, IP 주소와 구조 | 모두의 네트워크 전 세계에는 수많은 네트워크가 있다. 그 네트워크들은 서로 연결되어 거대한 인터넷을 이루고 있다.그렇다면, 네트워크 간의 연결은 어떻게 하는 걸까~?!4장까지는 데이터 링크 계층과 스위치, 이더넷 규칙을 배웠다.이 규칙에 따라 같은 네트워크에 있는 컴퓨터끼리 데이터를 전송할 수 있었다. 하지만!!!! 스위치만 있다고 데이터를 어디에나 다 보낼 수 있는 게 아니었다!!!!!데이터 링크 계층과 이더넷 규칙으로는 동일 네트워크 안에서만 통신이 가능하다.수많은 네트워크가 연결된 환경에서는 데이터 링크 계층의 기능만으로는 다른 네트워크로 데이터를 전송하기가 힘들다.따라서 네트워크가 여러 개라면, 그 각기 다른 네트워크 끼리의 연결은 다른 방법으로 해주어야 한다. 그래서 ....다른 네트워크와는 어떻게 통신하는데요.. 2022. 5. 8.
[JAVA] [JSP] [SQL] [에러 해결] DB에 image file 저장할 때 (서버경로+로컬파일경로) 겹치는 경로 에러 해결 / FileNotFoundException DB에 이미지 넣고, DB에서 꺼내 이미지 출력하기 진행하려는 플로우 1단계 > productadd.jsp 프런트 화면에서 사용자가 input 하기 위한 jsp문이다. ↓ 2단계 > productadddb.jsp input 내용을 전달받아 DB에 insert하기 위한 jsp문이다. 단, image 파일의 파일명만 가져가서 서버폴더로 따로 저장해줘야 한다. 따라서, 1. 서버 폴더에 저장하기 위해 FileUtil로 경로 다 떼고 이름만 남은 image 파일을 보낸다. 2. DB에 넣을 image파일 또한 경로 다 떼고 이름만 가져간다. (이렇게 하는 이유는, DB에서 꺼내올 때 이런 식으로, 서버 폴더 내에 저장시켜놨던 image를 가져오기 위함이다.) ↓ 3단계 > FileUtil.jsp producta.. 2022. 4. 26.
전이중 통신, 반이중 통신, 이더넷 종류 | 모두의 네트워크 케이블에 데이터가 아무리 많이 전송되어도 데이터가 충돌하지 않는 구조가 있다? 전이중 통신반이중 통신데이터의 송수신을 동시에 통신하는 방식회선 하나로 송신과 수신을 번갈아가면서 통신하는 방식데이터를 동시에 전송해도 충돌이 발생하지 않음데이터를 동시에 전송하면 충돌이 발생함스위치충돌이 일어나지 않는 구조로 되어 있다.따라서 전이중 통신 방식으로도 데이터를 주고 받을 수 있다.허브내부에 송수신이 나누어져 있지 않기때문에 컴퓨터1과 컴퓨터2를 허브로 연결하면 동시에 데이터를 보낼 때 충돌이 일어난다.허브에서는 회선 하나를 송신과 수신이 번갈아가면서 사용하는 반이중 통신 방식을 사용한다.네트워크로 효율이 높은 스위치를 사용하는 것이 표준!  충돌 도메인 (collision domain)허브데이터를 전송하며 충돌.. 2022. 4. 25.
스위치, MAC 주소 테이블과 학습 기능, 플러딩 | 모두의 네트워크 허브와 다르게 데이터 충돌이 일어나지 않는 스위치스위치데이터 링크 계층에서 동작한다. 다른 이름으로는 레이어 2 스위치, 스위칭 허브가 있다.외형 모습은 허브와 비슷하다. MAC 주소 테이블 (MAC address table)스위치 내부에 있다.스위치의 포트 번호 + 해당 포트에 연결되어 있는 컴퓨터의 MAC 주소가 등록되는 데이터 베이스이다. 브리지 테이블 (bridge table) 이라고도 한다.MAC 주소 학습 기능스위치의 전원을 켠 상태에는 아직 MAC 주소 테이블에 아무것도 등록되어 있지 않다. 프레임컴퓨터에서 목적지 MAC 주소가 추가된 것이라는 데이터가 전송되면, MAC 주소 테이블이다. 스위치를 통한 데이터 전송 과정프레임컴퓨터에서 목적지 MAC 주소가 추가된 것-> MAC 주소 등록되어 .. 2022. 4. 20.
데이터 링크 계층, 이더넷, 충돌, MAC 주소 | 모두의 네트워크 랜에서 데이터를 주고받는 규칙 : 이더넷, 알아보자랜에서 데이터를 주고받으려면 데이터 링크 계층의 기술이 필요하다. 어떤 기술일까?응용계층  ---- 7계층표현 계층 ---- 6계층세션 계층 ---- 5계층전송 계층 ---- 4계층네트워크 계층 ---- 3계층데이터 링크 계층 ---- 2계층물리 계층 ---- 1계층먼저 데이터 링크 계층에 대해서 구체적으로 알아보자. 데이터 링크 계층네트워크 장비 간에 신호를 주고받는 규칙을 정하는 계층이다. 정상적인 데이터를 주고받으려면 데이터 링크 계층이 필요하다. 여기서 "규칙" 중 하나가 바로 "이더넷"이다. 이더넷 (Ethernet)이더넷은 허브*같은 기기로 연결된 컴퓨터끼리 데이터를 주고 받을 때 사용한다.  *허브 복습허브는 약해지거나 파형이 뭉그러진 전기 .. 2022. 4. 15.
[백준 4673번] [파이썬] 10000이하의 셀프넘버 구하기 / 코드분석 자세한 설명 정답 코드 전문# 4673# n을 d(n)의 생성자라고 하자.# 즉 d(n)은 생성자가 있는, 셀프넘버가 아닌 숫자다.natural = set(range(1, 10001)) # set안에 1부터 10000까지 숫자 생성generated = set() # 빈 set 설정for n in range(1, 10001): # 1부터 10000까지 for문 생성 for j in str(n): # d(n)을 구하기 위한 for문 n += int(j) # n(자기자신)에 각 자리수를 더해주어 d(n)을 구한다. generated.add(n) # d(n) 집어 넣기self_num = sorted(natural - generated) # 1~10000 set에서 생성자가 있는 d(n)들을 삭제하고 .. 2022. 4. 14.
물리계층, 전기 신호, 디지털 신호, 랜 카드, 케이블, 허브 | 모두의 네트워크 물리계층의 역할과 랜 카드를 알아보자전기 신호앞서 OSI 모델에 대해 배웠는데,0과 1만으로 이루어진 비트열을 전기 신호로 변환하려면 아래 표과 같이 맨 아래 계층인 물리계층의 기술이 필요하다.응용계층  ---- 7계층표현 계층 ---- 6계층세션 계층 ---- 5계층전송 계층 ---- 4계층네트워크 계층 ---- 3계층데이터 링크 계층 ---- 2계층물리 계층 ---- 1계층네트워크를 통해 데이터를 주고받을 때에는0과 1의 비트열 -> 전기신호 !!! 변환해야 한다!! 전기 신호의 종류1. 아날로그 신호   - 전화 회선, 라디오 방송에 사용되는 신호   - 물결 모양 2. 디지털 신호   - 막대 모양 데이터는 어떻게 전달되는거지...?데이터 송신 측 컴퓨터- - >전기 신호로 변환- - >- - >.. 2022. 4. 13.