Siku.Log
  • 메뉴 닫기
  • 글작성
  • 방명록
  • 환경설정
    • 분류 전체보기 (16)
      • 컴퓨터공학 (3)
        • 데이터베이스 (1)
        • 운영체제 (1)
        • 네트워크 (1)
        • Etc. (0)
      • 자바 & 스프링 (4)
        • 자바 (1)
        • 스프링 프레임워크 (1)
        • JPA (1)
        • 객체지향프로그래밍 (1)
      • 개발 지식 (3)
      • 회고 (3)
      • 일상 (3)
컴퓨터공학/네트워크

네트워크의 OSI 7계층

네트워크란?동일한 프로토콜(통신을 위해 미리 약속된 규칙)을 사용하는 디바이스들의 집합이다.네트워킹은 네트워크에 연결된 디바이스간의 데이터 전송을 뜻한다.OSI 7계층과 TCP/IP 계층 구조란?위 이미지와 같이 네트워크는 각각의 계층들을 모아서 프로토콜로 규정하여 지킨다.OSI 7계층의 각각의 계층은 다음의 역할을 한다.1 Layer-물리계층 : 대부분 하드웨어로서 데이터 패킷을 전기신호 또는 광신호로 바꾸어 송수신한다.2 Layer-데이터링크계층 : 네트워크 계층으로부터의 메시지를 광신호로 변환한다.3 Layer-네트워크계층 : 두 원격 시스템간의 연결성과 경로 선택을 제공해준다.4 Layer-트랜스포트계층 : 데이터 전송 서비스를 제공한다. 이때 신뢰적 전송인 TCP 방식과 비신뢰적 전송인 UDP ..

2025. 2. 12. 21:59
컴퓨터공학/운영체제

프로세스란? 프로세스의 생성과 종료 과정

프로세스란?프로세스는 프로그램을 실행하는 단위이다.프로그램이란, 프로그래밍 언어로 작성된 일련의 실행 절차를 뜻한다.프로세스는 한 개 또는 여러 개의 스레드로 이루어져 있으며, 운영체제에 의해 관리된다.프로세스의 메모리 배치각 섹션은 다음의 정보를 갖는다.텍스트 섹션 - 실행 코드데이터 섹션 - 전역 변수힙 섹션 - 프로그램 실행 중에 동적으로 할당되는 메모리 (ex. 객체)스택 섹션 - 임시 데이터 저장장소 (ex. 매개변수, 복귀 주소, 지역변수 등)이 중 텍스트와 데이터 섹션의 크기는 프로세스가 초기화될 때의 크기로 고정되기 때문에 프로그램 실행 시간 동안 크기가 변하지 않는다. 그러나 스택과 힙 섹션은 동적으로 줄어들거나 커질 수 있다. 스택과 힙 섹션은 서로의 방향으로 커지지만, 운영체제는 이를..

2025. 1. 14. 19:10
컴퓨터공학/데이터베이스

데이터베이스 기초, 용어 정리

데이터베이스란?데이터를 효율적으로 저장, 관리, 검색, 수정, 삭제할 수 있는 체계적이고 구조화된 시스템이다.일반적으로 컴퓨터 시스템에서 데이터베이스는 여러 데이터를 구조화된 형태로 저장하고, 이를 쉽게 접근할 수 있게 해주는 소프트웨어 시스템을 말한다.파일 시스템이 아닌 데이터베이스를 사용하는 이유1. 불필요한 데이터와 자주 변하는 데이터의 존재- 파일 시스템을 사용한다면 각각의 파일이 필요한 정보를 모두 가지고 있어야 한다 (Redundant Data)- 수정해야하는 파일이 많아지면 일관성이 깨질 수 있다 (Inconsistency)2. 데이터 접근의 어려움- 파일 시스템을 사용하는 프로그램은 파일 구조와 경로가 변경될 때마다 코드의 잦은 수정이 필요할 수 있다3. 데이터 분리- 파일 시스템을 사용한..

2025. 1. 13. 15:51
자바 & 스프링/자바

[Java] 멀티스레드 I/O vs 논블로킹 I/O

Java는 기본적으로 Blocking I/O를 사용한다.운영체제 바로 위에서 동작하지 않고 JVM을 거치는 Java에게는 이런 점이 "느린 언어다"라는 인식을 심어주었다. 스레드는 기본적으로 I/O 요청이 발생하면 블로킹(wait) 상태에 들어간다.블로킹 상태일 때는 I/O 작업이 완료될 때까지 운영체제 잡스케줄러의 자원할당을 받지 않는다.네트워크 서버와 같이 I/O 집약적인 작업을 수행하면 이런 블로킹 상태로 들어가는 것은 치명적인 성능저하로 이루어질 수 있다. 비효율적인 Java I/O 방식이 사진은 왜 Java I/O가 비효율적인지 단편적인 예시를 보여준다. Disk에서 커널영역의 버퍼로 데이터를 복사할 때는 Disk Controller의 제어를 받으며 CPU가 관여하지 않아도된다.그러나 커널영역의..

2024. 12. 12. 16:05
자바 & 스프링/JPA

[JPA] JPA를 사용하는 이유

JPA 란 무엇인가JPA는 데이터베이스 기술이라기보다, 애플리케이션의 데이터를 객체지향 프로그래밍의 관점으로 지켜보고 다룰 수 있게 해주는 기술이다. 객체지향 프로그래밍의 기본적인 원칙을 지키면서 프로그래밍을 하면 생산성, 품질, 유지보수성 등 많은 장점이 있다.과거에는 애플리케이션 개발단계에서 프로덕션 코드 보다, SQL과 JDBC 코드를 작성하는 시간이 더 길었다고한다.MyBatis나 JdbcTemplate과 같은 SQL Mapper의 등장으로 이 부분은 많이 개선되었지만, 여전히 유지보수의 관점에서는 문제가 많았다. 이때 CRUD 작업을 훨씬 간편하고 빠르게 할 수 있게 해준 도구가 JPA이다.// 1. Createjpa.persist(member);// 2. ReadString memberId =..

2024. 12. 11. 20:38
회고

스무고개 게임 소켓통신 프로젝트 회고

프로젝트 개요 "> 저희 프로젝트는 스무고개 게임을 구현하여 2명 이상의 사용자가 채팅 서비스에 접속하여 대화를 주고받는 프로그램입니다. 문제의 출제자는 ‘네’, ‘아니오’, ‘정답입니다’ 에 대한 대답을 통해서 프로그램이 수행되며, 1명 이상의 참여자는 20번의 질문 기회를 통해 정답을 맞추며 프로그램을 수행할 수 있습니다. 이 프로그램은 1:1 채팅과 단체 채팅을 구현합니다. 서버 애플리케이션은 Java를 기반으로 TCP/IP 소켓 통신 인터페이스를 제공합니다. 1개의 서버 소켓을 통해 사용자에게 요청 및 답변을 수행합니다. MySQL에 데이터를 저장하여 사용자가 게임을 진행한 기록에 대해 영속성을 보장합니다. 또한 AWS EC2에 배포되어 어느 곳 에서든 접근할 수 있도록 인터페이스를 제공합니다.T..

2024. 12. 10. 13:28
  • «
  • 1
  • 2
  • 3
  • »

전체 카테고리

  • 분류 전체보기 (16)
    • 컴퓨터공학 (3)
      • 데이터베이스 (1)
      • 운영체제 (1)
      • 네트워크 (1)
      • Etc. (0)
    • 자바 & 스프링 (4)
      • 자바 (1)
      • 스프링 프레임워크 (1)
      • JPA (1)
      • 객체지향프로그래밍 (1)
    • 개발 지식 (3)
    • 회고 (3)
    • 일상 (3)

전체 방문자

오늘
어제
전체
Powered by Privatenote Copyright © Siku.Log All rights reserved. TistoryWhaleSkin3.4

티스토리툴바