개발자 70

(CS) 네트워크 - 프록시와 안정적인 트래픽

오리진 서버와 중간 서버 : 포워드 프록시와 리버스 프록시오리진 서버 : 자원을 생성하고 클라이언트에게 권한이 있는 응답을 보낼 수 있는 HTTP 서버  중간 서버프록시포워드 프록시라고도 함 클라이언트가 선택한 메시지 전달의 대리자.캐시 저장, 클라이언트 암호화 및 접근 제한 등의 기능 제공클라이언트와 더 가까이 위치함게이트 웨이리버스 프록시라고도 함오리진 서버들을 향하는 요청 메시지를 먼저 받아서 전달하는 문지기오리진 서버에 가까이 위치함캐시를 저장할 수 있으며, 부하를 분산하는 로드밸런서로도 동작 가능 고가용성 : 로드 밸런싱과 스케일링가용성주어진 특정 기능을 실제로 수행할 수 있는 시간의 비율고가용성이 필요한 호스트는 서버임트래픽이 가장 큰 영향을 끼침 → 과도한 트래픽은 발열  및 레이스 컨디션,..

CS/기타 2025.03.30

(CS) 네트워크 - 전송 계층, TCP & UDP

TCP와 UDP의 목적과 특징포트를 통한 프로세스 식별패킷의 최종 송수신 대상 : 호스트가 실행하는 프로세스ex) 하나의 호스트는 여러 프로세스(인터넷, 게임, 채팅 등) 동시 실행 → 네트워크를 통해 주고받는 패킷 → 프로세스에 전달되어야함port를 통해, 특정 호스트가 실행하는 특정 프로세스를 식별할 수 있음형식 → IP 주소 : 포트번호 (ex. 192.168.0.1:8000)TCP와 UDP 헤더에는 모두 포트 번호 필드인 송신지 포트번호와 수신지 포트 번호를 포함하고 있음.16비트로 표한할 수 있는 포트 번호의 총 개수는 2^16 == 65536개 ( 0 ~ 65535 )잘 알려진 포트 (well known port) : 0 ~ 1023 번20, 21 : FTP22 : SSH23 : TELNET5..

CS/기타 2025.03.25

(CS) 네트워크 - 네트워크 계층 IP

IP의 목적과 특징목적1. 주소지정 (addressing)네트워크 간의 통신 과정에서 호스트를 특정하는 것2. 단편화 (fragmentation)데이터를 여러 IP 패킷으로 올바르게 쪼개어 보내는 것특징1. 신뢰할 수 없는 통신2. 비연결형 통신 주소 지정과 단편화주소 지정 :  IP 주소(논리주소라고도 부르는 네트워크 계층의 주소 체계)를 통해 이루어지며, IP 패킷 헤더를 통해 알수 있음송신지 IP 주소 , 수신지 IP 주소송수신지를 식별할 수 있는 IP 주소 명시하나의 IP 주소는 총 4바이트 크기로 구성, 숫자당 8비트 → 0~255 범위의 10진수 4개로 표기10진수는 점으로 구분하며, 구분된 하나의 10진수를 옥텟(octet)이라고 함ex ) 192.168.0.1 → '192' , '168',..

CS/기타 2025.03.22

(CS) 네트워크 - 물리 계층과 데이터 링크 계층

이더넷(Ethernet)통신 매체를 통해 신호를 송수힌하는 방법, 데이터 링크 계층에서 주고받는 데이터(프레임) 형식등이 정의된 기술대부분의 유선 LAN은 이더넷을 기반으로 구현되어 있음 이더넷 표준IEEE 802.3이라는 이름으로 국제 표준화된 기술 → 이더넷과 관련된 다양한 표준들의 모음에 가까움!!새로운 이더넷 표준들은 802.3뒤에 붙은 알파벳으로 버전을 나타냄오늘날의 유선 LAN 대부분이 이더넷 표준을 따르기 때문에, 대다수의 LAN 장비들이 특정 이더넷 표준을 따름이더넷 표준이 달라지면 통신 매체 종류, 신호 송수신 방법, 최대 지원속도가 달라질 수 있다. 이더넷 프레임이더넷 기반의 네트워크에서 주고받는 프레임Ethernet 2 프레임이라고 부름프리앰블, 수신지 MAC 주소등의 정보를 포함하고..

CS/기타 2025.03.19

(CS) 네트워크 - 기본구조

기본 구조노드와 간선으로 이루어진 자료구조 → 그래프의 형태네트워크 기기 : 노드 , 정보 교환에 필요한 통신 매체 : 간선 네트워크 토폴로지네트워크 상 노드와 노드 사이의 연결 구조망형, 트리형, 링형, 성형, 버스형(선형) 등이 있음네트워크를 통해 주고 받는 정보를 최초로 송,수신하는 노드를 호스트라고함.ex. 노트북의 웹 브라우저를 통해 구글 홈페이지 접속 했다면?→ 노트북, 구글 홈페이지 서버가 각각 호스트노트북은 요청(request)을 보냈으니 클라이언트, 구글은 응답(response)을 보내니까 서버라고 함! 망형(Mesh) 토폴로지특징모든 노드가 서로 직접 연결된 구조모든 노드가 다른 모든 노드와 연결되면 완전 망형, 그게 아니면 부분 망형이라 불림.장점장애 발생 시 우회 경로가 존재 → 신..

CS/기타 2025.03.18

(CS) 데이터베이스 - 트랜잭션, 인덱스, 조인

트랜잭션과 무결성트랜잭션DB에서 하나의 논리적 기능을 수행하기 위한 작업의 단위여러개의 쿼리들을 하나로 묶는 단위 원자성(atomicity)트랜잭션과 관련된 일이 모두 수행 되거나, 모두 안되거나를 보장하는 특징커밋과 롤백으로 인해, 데이터의 무결성 보장커밋여러 쿼리가 성공적으로 처리되었다고 확정하는 명령어롤백트랜잭션으로 처리한 하나의 묶음 과정을 일어나기 전으로 돌리는 일일관성(consistency)허용된 방식으로만 데이터를 변경해야하는 것 격리성(독립성, isolation)트랜잭션 수행시, 트랜잭션 간에 독립적으로 수행이 가능하는 것격리 수준에 따라 발생하는 현상팬텀 리드- 한 트랜잭션 내에서 동일한 쿼리를 보냈지만, 조회 결과가 다른 경우 ex)키 170cm 이상 회원 조회 → 3명키 175cm 회..

(CS) 데이터베이스 - 기본 및 정규화

데이터 베이스의 기본데이터 베이스(DataBase - DB)일정한 규칙을 통해 구조화되어 저장되는 데이터의 모음DB를 제어, 관리하는 통합 시스템을 DBMS(DataBase Management System)라고 함실시간 접근 및 동시 공유 가능아래는 프로그램과 DBMS, DB간의 관계도를 그림으로 나타낸 것.  엔터티(entity)여러 개의 속성을 가진 명사A가 혼자서 존재하지 못하고, B의 존재에 따라 종속적이라면, A는 약한 엔티티, B는 강한 엔티티 (ex. 방 : 약한, 건물 : 강한)  릴레이션(relation)DB 에서 정보를 구분하여 저장하는 기본 단위관계형 데이터베이스 → " 테이블 ", NoSQL 데이터베이스 → " 컬렉션 "로 칭함행 하나(레코드)의 집합 → 릴레이션의 집합 → 테이블의..

On-Device AI ?

On-Device Ai 란?인터넷이 되지않는 환경임에도 불구하고 ai 기능을 통해 삶에 편리함을 제공하는 방법 ( ex. Circle to Search 등.) 구현을 해보자 ( by YOLO.pt -> YOLO.tflite) YOLO 모델을 잘 구현해놓은 ultralytics 에서 가져와서 훈련을 진행합니다!개인이 정한 parameter를 통해 학습을 진행하고, best.pt 모델을 도출해 냅니다.best.pt 모델을 device에 넣기 위해 tflite 형식으로 export 해요!export 할때, 기능 만큼 중요한 것이 경량화이므로, 경량화를 위해 float32를 float16으로 변환시켜봅니다! (상황마다 다르지만, int8로 변환시켜도 됩니다. ) -> 이 과정을 "양자화"(quantization..

개발/코틀린 2025.02.10

(SWEA) 1230. [S/W 문제해결 기본] 8일차 - 암호문3

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14zIwqAHwCFAYD SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 0 ~ 999999 사이의 수로 표현되는 암호문이 있고, 이 암호문을 N개 모아 놓은 암호문 뭉치가 있다.암호문 뭉치를 급히 수정해야 할 일이 발생했는데, 암호문은 특수 제작된 처리기로만 수정이 가능하다.처리기는 다음과 같이 3개의 명령어로 제어한다.1. I(삽입) x, y, s : 앞에서부터 x번째 암호문 바로 다음에 y개의 암호문을 삽입한다. s는 덧붙일 암호문들이다.[ ex) I 3 2 12315..

알고리즘/swea 2025.01.21

(CS) 정렬 - 퀵 정렬

분할 정복 방식을 사용하여 피벗을 기준으로 데이터를 분할하며 정렬하는 방법일반적인 경우, 정렬 중 가장 빠르고, 대부분 효율적이다. 내부 정렬에 적합하며, 메모리에 올려놓고 정렬하기 때문에, 효율이 좋다. 최악의 경우, n^2의 시간 복잡도가 발생할 수 있다.추가 메모리 없이 정렬을 하지만, 재귀 호출을 하기 때문에, 스택 오버플로우의 위험이 있다. 대부분의 실무 정렬에서 사용대용량 데이터에서 효과적데이터 베이스 정렬, 웹 페이지 정렬에서 자주 사용 public class QuickSort { public static void quickSort(int[] arr, int low, int high) { if (low

CS/기타 2025.01.21