Archive

2021-01-13 TIL

|

2021-01-13 TIL


  • 오늘 한 것

    1. 개인 프로젝트 DB연동 admin 재고 등록,수정,삭제 버튼 구현 - 오늘도 역시 예외처리와의 사투였다. SQLException 부터 DB에 INSERT시 IndexOutOfBoundsException까지 다양하게 겪었다. admin계정의 매장관리에서 쓰이는 기능과 재고관리에서 쓰이는 기능이 비슷해서 재고관리는 비교적 빨리 끝났다. (디버깅에 애먹은거 빼고..)
    2. 학원 비대면 수업(15:30 ~ 22:00) 네트워크 - 유니캐스트에 이어 멀티캐스트로 구현한 간단한 채팅프로그램을 만드는 방법을 배웠다. 나중에 개인 프로젝트에도 이 기능을 넣으면 어떨지 고민중..
    3. 블로그 포스팅(네트워크 기초) - 기본 용어 정리했다.



  • 내일 할 것
    1. 개인 프로젝트 DB연동 POS 결제 시스템 구현
    2. 자바 데이터베이스 활용 공부
    3. 학원 비대면 수업(15:30 ~ 22:00) 데이터베이스
    4. 블로그 포스팅(MySQL 문법)



  • 끝으로

내일부터 데이터베이스 나간다. 나는 이미 개인프로젝트 준비로 공부하고 있었지만 수업 듣고 개념을 확실히 잡아야겠다.

오늘의 한 줄 총평 : 자바가 끝나간다..


Network basic - OSI 7 layer, TCP/IP 4 layer

|

Network basic - OSI 7 layer, TCP/IP 4 layer



  1. 네트워크

    • 네트워크란 다른 장치로 데이터를 이동시킬 수 있는 컴퓨터와 주변 장치들의 집합이다.
    • 네트워크에 연결된 모든 장치들을 노드라고 한다.
    • 다른 노드에게 하나 이상의 서비스를 해주는 노드를 호스트라한다.
    • 하나의 노드에서 다른 노드로 데이터를 이동시킬 때 복잡한 계층을 통해 전송되는데, 이런 복잡한 레이어의 대표적인 모델이 OSI 계층모델이다.
    • 인터넷 기반의 표준 모델은 TCP/IP 계층 모델이다.


  2. OSI 계층 모델

    • OSI(Open System Interconnection) 계층은 국제표준화기구(ISO)에서 개발한 모델로 네트워크 통신의 과정을 7단계로 규정했다.

    osi

    1. 물리 계층(Physical Layer)

      • 노드간의 물리적 연결, 무선 연결을 위한 연결장치이다.
      • 0과 1의 비트 정보를 내보내기 위한 전기적 변환, 기계적 작업이 이루어짐
      • 허브, 리피터
    2. 데이터 링크 계층(Data Link Layer)

      • 물리적 연결(데이터 링크) 간의 신뢰성 있는 정보 전송을 담당한다.
      • 네트워크 프로토콜을 식별하고 오류 검사를 수행한다.
      • 브리지, 스위치
    3. 네트워크 계층(Network Layer)

      • 세그먼트를 패킷으로 분할하고 수신된 패킷을 재조립한다.
      • 물리적 네트워크에서 최상의 경로를 선택하여 패킷을 라우팅한다.
      • 정보 교환 및 중계 기능, 트래픽 제어 기능, 네트워크 연결 관리
      • 라우터
    4. 전송 계층(Transport Layer)

      • 세션 계층에서 전송된 데이터를 세그먼트로 나눈다.
      • 수신된 세그먼트는 재조립하여 세션 계층에서 사용 할 수 있는 데이터로 변환.
      • 흐름 제어를 수행하여 수신 장치의 연결 속도와 일치하는 속도로 데이터를 전송.
      • 오류 제어를 수행하여 데이터가 잘못 수신되었는지 확인하고 재요청한다.
      • 송신, 수신 프로세스를 연결.
      • TCP의 데이터 전송 단위 : Segment / UDP의 데이터 전송 단위 : Datagram
    5. 세션 계층(Session Layer)

      • 장치 간에 세션이라고 불리는 통신 채널을 생성한다.
      • 세션을 열고 데이터가 전송되는 동안 세션의 작동을 확인한다.
      • 통신이 종료되는 세션을 닫는 역할.
      • 체크 포인트를 설정하여 동기화 가능.
      • 송신, 수신을 논리적으로 연결.
      • 호스트
    6. 표현 계층(Presentation Layer)

      • 응용계층에 전송할 데이터 혹은 전송받은 데이터를 인코딩 및 디코딩, 암호화 및 해독, 압축 및 해제, 코드 번역하여 데이터 표현을 일관되게 전송한다.
      • 호스트
    7. 응용 계층(Application Layer)

      • 사용자와 네트워크 간의 응용 서비스를 연결.
      • 사용자에게 의미있는 데이터를 제공할 수 있는 프로토콜을 제공.
      • HTTP, FTP, POP, SMTP, DNS 등


  3. TCP/IP 계층 모델

    • TCP/IP는 TCP와 IP만을 칭하는게 아니라 UDP, ICMP, ARP, RARP 등 관련된 프로토콜을 통칭
    • TCP와 UDP 프로토콜은 전송 계층에서 응용 계층과 인터넷 계층 사이의 통신을 담당.
    • TCP와 UDP의 가장 큰 차이점은 데이터 전송의 신뢰성.
    • TCP는 수신측의 수신 상태, 수신 여부 등을 단계별로 체크하면서 전송. 느림, 전송 순서가 보장된다. 패킷 관리 필요 없음. 연결 기반의 1:1 방식
    • UDP는 망으로 데이터를 송신할 뿐 확인은 하지 않는다. 빠름, 전송 순서가 바뀔 수 있다. 패킷을 관리해야 함. 비연결 기반의 1:1, 1:n, n:n 방식


    TCP/IP

    1. 링크 계층(Network Interface Layer, Network Access Layer)

      • OSI 7계층의 물리, 데이터 링크 계층에 해당.
      • 동일한 네트워크에 있는 장치 간의 데이터 전송을 담당.
      • MAC 주소 사용.
    2. 인터넷 계층(Internet Layer)

      • OSI 7계층의 네트워크 계층에 해당.
      • 노드 간 패킷 전송과 라우팅을 담당.
    3. 전송 계층(Transport Layer)

      • OSI 7 계층의 전송 계층에 해당.
      • 노드 간 연결을 제어, 신뢰성 있는 데이터를 전송.
    4. 응용 계층(Application Layer)

      • OSI 7 계층의 세션, 표현, 응용 계층에 해당.
      • TCP/UDP 기반 응용프로그램 구현.




참고 자료


KG아이티뱅크 강의 자료

OSI Model - imperva

TCP/IP Model: Layers & Protocol - What is TCP IP Stack?


2021-01-12 TIL

|

2021-01-12 TIL


  • 오늘 한 것

    1. 개인 프로젝트 DB연동 데이터 등록 버튼 구현 및 테이블에 추가, 사용자명 화면출력 - 등록할 데이터를 텍스트필드에 적고 등록버튼을 누르면 DB에 등록되고 또, ObservableList에도 추가되어 테이블에 해당 데이터가 추가되어 보여진다. 관리자 계정 이외의 사용자가 로그인했을 경우 사용자명이 화면에 출력된다.
    2. 학원 비대면 수업(15:30 ~ 22:00) 네트워크 - java에서 socket을 활용하여 채팅을 주고 받는 프로그램 구현법을 간단하게 배웠는데 문제는 다대다 채팅이 안된다는것. 이것이 가능하려면 스레드를 도입해야하는데 그 방법은 내일 수업때 배우게된다.
    3. 블로그 포스팅(네트워크 기초)



  • 내일 할 것
    1. 개인 프로젝트 DB연동 admin 페이지의 매장관리, 재고관리 구현
    2. 자바 데이터베이스 활용 공부
    3. 학원 비대면 수업(15:30 ~ 22:00) 네트워크
    4. 블로그 포스팅(네트워크 기초)



  • 끝으로

개인프로젝트에 DB공부에 네트워크까지.. 정신이 없다 요즘

오늘의 한 줄 총평 : 정신관리


2021-01-11 TIL

|

2021-01-11 TIL


  • 오늘 한 것

    1. 개인 프로젝트 모든 화면 및 전환 구현 - 오늘까지 GUI 끄읏. 모든 화면 fxml 작성을 끝냈고 각각의 controller 연결도 끝냈다. 각각의 버튼들로 화면전환도 가능케했다. 중간에 로그아웃 기능 디버깅에 시간을 조금 쏟았지만 결국 해결했다. 오늘은 하루종일 NullPointerException과의 사투였다. java gui는 쓰는곳도 별로 없고 별로 중요하지 않은 파트라 얼른 이 프로젝트를 끝내고 웹으로 갈아타고 싶다…. 이제 어떤 데이터를 어떻게 가공하여 화면에 출력해줄지 고민의 시간이 찾아왔다. DB쪽 개념을 알아가는 재미가 쏠쏠하다.



  • 내일 할 것
    1. 개인 프로젝트 DB연동 데이터 등록,수정,삭제 구현하기
    2. 자바 데이터베이스 활용 공부
    3. 학원 비대면 수업(15:30 ~ 22:00) 네트워크



  • 끝으로

내일 데이터베이스를 활용하여 본격 CRUD 구현에 들어간다. 이번 프로젝트의 관건이다. 아마 단기간에는 안될것 같고 공부와 병행하느라 시간이 좀 걸릴듯하지만 최대한 빨리 끝내고 조금 더 욕심을 내서 네트워크 서버 연결까지 했음싶다.

오늘의 한 줄 총평 : 우선 만들고 보자


2021-01-10 TIL

|

2021-01-10 TIL


  • 오늘 한 것

    1. 개인 프로젝트 로그인 화면전환 구현 - 관리자 계정으로 접속하면 관리자 화면을 보여주고, 일반 사용자 계정으로 접속하면 사용자 화면을 보여주는 화면전환 기능을 구현했다. 화면전환의 방법에는 여러가지가 있는데 StackPane을 사용하여 기존의 화면을 유지한채 전환을 하면 애니메이션 효과를 줄 수 있지만 나는 새로운 scene을 장착한 stage를 보여주는 방식을 선택했다. 그 외 로그아웃 기능까지 구현을 마쳤다.



  • 내일 할 것
    1. 개인 프로젝트 관리자,사용자 화면의 버튼 구현하기
    2. 자바 데이터베이스 활용 공부
    3. 학원 비대면 수업(15:30 ~ 22:00) swing



  • 끝으로

뭔가 되고 있다.

오늘의 한 줄 총평 : 뭔가 만들어지고 있다.