• 안녕하세요!12기 싸피셜 이서현입니다. 😊 2학기 첫 프로젝트였던 공통프로젝트가 끝난 지 한 달이 지났는데요,엊그제 개강한 것 같은데 벌써 특화프로젝트 진행중이라니... 거짓말  시간이 정말 너무 빠르네요^^이걸 한 번만 더 반복하면 싸피도 끝이라니 믿고 싶지 않은 현실입니다. (싸피야 사랑해)   첫 프로젝트에서 저는 백엔드를 담당하게 되었는데요, 1학기 때 MyBatis를 썼던 것과는 달리, 이번에는 Spring JPA를 사용하게 되어서블로그에도 소개하고 싶어 이렇게 작성하고 있답니다~!   JPA(Java Persistence API)란?자바의 ORM(Object-Relational Mapping) 기술을 쉽게 구현하도록 도와주는 API입니다.JpaRepository를 상속하는 인터페이스에 메서드..

  • 그래프연결 관계를 표현하는 자료구조 정점이라 불리는 데이터를 간선, 혹은 링크로 연결한 형태트리도 사실 그래프의 일종이다.그런데, 트리는 노드간 상하관계를 가지며 사이클 형성 X그래프는 상하관계 X, 사이클 형성 가능 -> 기본적으로 연결 관계를 표현함연결 그래프그래프상의 임의의 두 정점 사이의 경로가 존재하는 그래프 비연결 그래프어떤 정점 사이에는 경로가 존재하지 않을 수도 있다.방향 그래프간선에 방향 존재무방향 그래프방향이 없는 그래프가중치 그래프간선에 가중치가 부여된 그래프. 이 가중치는 비용이라고도 함.서브그래프(부분 그래프)특정 그래프의 정점, 간선의 일부분으로 이루어진 그래프   ❓이 그래프들은 어떻게 구현하고 저장할까? 노드간 상하관계도 없는데... 인접 행렬 기반 그래프 표현N × N 크기..

  • 해시 테이블 (hash table)키(key), 값(value)의 대응으로 이루어진 표(테이블)와 같은 형태의 자료구조키: 해시 테이블에 대한 입력값: 키를 통해 얻고자 하는 데이터   해시 함수 (hash function)임의의 길이를 지닌 데이터 -> 고정된 길이의 데이터로 변환하는 단방향 함수단방향이므로, 반대로 해시 값을 토대로 어떤 데이터가 입력되었는지를 도출하긴 어려움 해시 알고리즘 (hash algorithm)대표적으로 MD5, SHA-1, SHA-256, SHA-512, SHA3, HMAC 등...알고리즘에 따라 도출되는 해시값의 길이나 값이 다름  문자열이 한 글자만 달라져도 도출되는 해시값이 크게 달라짐.-> 무작위 값 만들거나, 단방향 암호 만들 때, 데이터의 무결성 검증시 사용  ❓..

  • 자료구조란?어떠한 구조로 데이터를 다룰 것인지!  시간 복잡도입력의 크기에 따른 프로그램 실행 시간의 관계표기법: 빅 오 표기법, 빅 세타 표기법, 빅 오메가 표기법더보기빅 오 표기법: 함수의 점근적 상한 표기빅 세타 표기법: 입력에 대한 평균적인 실행 시간빅 오메가 표기법: 입력에 대한 실행 시간의 점근적 하한 빅 오 표기법: 최고차항의 차수만 고려한다.   공간 복잡도프로그램 실행시 필요한 메모리 자원의 양 (즉, 메모리 사용량의 척도)    배열과 연결 리스트 배열 (Array)일정한 메모리 공간을 차지하는 여러 요소들이 순차적으로 나열된 자료구조0부터 시작하는 고유 번호, 인덱스가 매겨짐. 인덱스를 통해 요소에 접근 or 수정하는 시간은 요소 개수와 무관하게 일정. 즉, O(1)앞부터 차례대로 특..

  • Q1. 네트워크 토폴로지의 종류와 각각의 장단점을 설명해주세요.네트워크 토폴로지는 노드와 링크의 배치 방식을 의미합니다. 주요 토폴로지로는 버스, 스타, 링, 트리, 메시가 있습니다. 버스 토폴로지는 하나의 회선에 여러 노드가 연결되어 설치 비용이 저렴하지만 스푸핑에 취약합니다. 스타 토폴로지는 중앙 노드에 모든 노드가 연결되어 관리가 쉽지만 중앙 노드 장애 시 전체 네트워크가 마비됩니다. 링 토폴로지는 노드들이 원형으로 연결되어 충돌 가능성이 낮지만 회선 장애 시 전체에 영향을 줍니다. 1-1: 네트워크에서 병목 현상이 발생했을 때 어떻게 탐지하고 해결할 수 있을까요?병목 현상은 ping, tracert, netstat 같은 명령어로 탐지할 수 있습니다. ping으로 응답 시간을 확인하고, tracer..

  • HTTP는...전송 계층 위에 있는 애플리케이션 계층으로, 웹 서비스 통신에 사용. HTTP/1.0한 연결당 하나의 요청 처리하도록 설계. -> RTT 증가를 불러옴. RTT 증가RTT패킷이 목적지에 도달하고 나서, 다시 출발지로 돌아오기까지 걸리는 시간. 즉, 패킷 왕복 시간.서버에서 파일 가져올 때마다 TCP의 3-웨이 핸드셰이크를 계속 열어야 하므로 RTT가 증가하는 단점. RTT 증가 해결 방법 이미지 스플리팅많은 이미지가 합쳐져 있는 하나의 이미지를 다운받고, background-image의 position을 이용해서 이미지 표기. 코드 압축개행 문자, 빈칸을 없애고 코드의 크기를 최소화함. 이미지 Base64 인코딩이미지 파일을 64진법으로 이루어진 문자열로 인코딩. 서버와의 연결을 열고..

  • ARP (Address Resolution Protocol)컴퓨터들끼리는 (가상 주소인)IP 주소에서 ARP를 통해 (실제 주소인)MAC 주소를 찾아, MAC 주소를 기반으로 통신함.즉, ARP는 IP와 MAC 주소 사이의 다리 역할.(반대로 MAC -> IP 주소 변환시켜주는 건 RARP) 홉바이홉 통신IP 주소를 통해 통신하는 과정. 패킷이 여러 라우터를 건너가는 모습을 비유한 것.통신 장치의 '라우팅 테이블'의 IP를 통해 시작 주소부터 시작해, 다음 IP로 이동하는 라우팅 과정을 거쳐 최종 목적직까지 도달. 라우팅 테이블 라우터에 들어 있는 목적지 정보들, 목적지로 가기 위한 방법이 들어 있는 리스트.게이트웨이, 다음 라우터의 정보 가지고 있음. 게이트웨이서로 다른 통신망, 프로토콜을 사용..

  • 네트워크 기기의 처리 범위상위 계층을 처리하는 기기: 하위 계층 처리 가능. BUT 반대는 불가애플리케이션 계층: L7 스위치인터넷 계층: 라우터, L3 스위치데이터 링크 계층: L2 스위치, 브리지물리 계층: NIC, 리피터, AP 애플리케이션 계층을 처리하는 기기 L7 스위치스위치란? 여러 장비를 연결하고 데이터 통신으 ㄹ중재하며, 목적지가 연결된 포트로만 전기 신호를 보내서 데이터를 전송하는 장비. 서버의 부하를 분산하는 기기. 클라이언트의 요청들을 여러 서버로 나누는 역할. 로드밸런서라고도 한다.시스템이 처리할 수 있는 트래픽 증가를 목표로 함.URL, 서버, 캐시, 쿠키 기반으로 트래픽 분산. 또한, 불필요한 외부 데이터 필터링도 함. 장애 발생 서버를 트래픽 분산 대상에서 제외함. (정기적..

  • 인터넷 프로토콜 스위트(internet protocol suite)인터넷에서 컴퓨터들이 서로 정보를 주고받는 데 쓰이는 프로토콜의 집합.-> 이것을 TCP/IP 4계층 모델로 설명하거나, OSI 7계층 모델로 설명하기도 함. 계층 구조 이 계층 구조는, 특정 계층이 변경되었을 때 다른 계층이 영향을 받지 않도록 설계됨. 각 계층을 대표하는 스택 정리 (TCP/IP 4계층)애플리케이션 계층FTP / HTTP / SSH / SMTP / DNS전송 계층TCP / UDP / QUIC인터넷 계층IP / ARP / ICMP링크 계층이더넷 애플리케이션 계층FTP, HTTP, SSH, SMTP, DNS 등 응용 프로그램이 사용되는 프로토콜 계층.(웹 서비스, 이메일 등... 서비스를 실질적으로 사람들에게 제공..

  • 네트워크컴퓨터 등이 장치들이 통신 기술을 이용하여 구축하는 연결망 네트워크는...노드와 링크가 서로 연결되어 있거나, 연결되어 있으며 리소스를 공유하는 집합노드: 서버, 라우터, 스위치 등 네트워크 장치링크: 유선 또는 무선 처리량과 지연 시간 처리량링크 내에서 성공적으로 전달된 데이터의 양보통 얼만큼의 트래픽을 처리했는지를 나타냄 ('많은 트래픽을 처리한다' = '많은 처리량을 가진다')단위: bps(bits per second). 초당 전송 또는 수신되는 비트 수트래픽: 특정 시점에 링크 내에 흐르는 데이터의 양 트래픽이 많아졌다(흐르는 데이터가 많아졌다) vs. 처리량이 많아졌다(처리되는 트래픽이 많아졌다)대역폭: 주어진 시간 동안 네트워크 연결을 통해 흐를 수 있는 최대 비트 수 지연 시간..

  • JWT(Json Web Token)은 사용자 인증, 데이터 교환에 사용되는 토큰 기반 인증 방식즉,서버-클라이언트 간의 보안 인증서 역할을 함.  JWT란?JSON 형식으로 구성된, 3부분으로 이루어진 문자열.Header: 토큰의 타입, 알고리즘 정보 포함Payload: 토큰에 포함된 데이터(사용자 ID, 권한 정보 등)Signature: 토큰의 무결성을 검증하기 위한 서명예:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIxMjMiLCJleHAiOjE2NzQ5NjM4MDB9.dXN3iQjXryGvQo_rivmnDNfQnMJy9Q0hDIpg9hswKmA   JWT를 활용한 로그인 호출 1. 사용자 로그인 요청- 사용자가 아이디, 비밀번호를 입력하고 로그인 요청..

  • CascadeType.REMOVE vs. orphanRemoval = true 차이?  CascadeType.REMOVE orphanRemoval = true부모 엔티티 삭제자식 엔티티도 삭제됨부모 삭제시 자식 엔티티도 삭제됨 (부모가 자식의 삭제 생명주기 관리)부모-자식 연관관계 제거단순 연관관계 제거만으로는자식 엔티티는 삭제되지 아니함자식 엔티티 = 고아 객체 취급자동으로 DB에서 삭제됨부모-자식 연관관계 변경잘 변경됨잘 변경됨   한편, CascadeType.PERSIST와 CascadeType.REMOVE의 차이? persist: 새로운 엔티티를 영속성 컨텍스트에 저장하여 DB에 추가.remove: 이미 존재하는 엔티티를 영속성 컨텍스트에서 제거하고 DB에서 삭제. 예시// persist 예시Or..

  • Copyright 2024. GRAVITY all rights reserved