만쥬의 개발일기
article thumbnail
[Network] - OSI 7계층
🖥️CS/🛜네트워크 2024. 2. 23. 15:00

OSI(Open Systems Interconnection) 7 계층이란? OSI 7 계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 개념적 프레임워크 말한다. OSI 7 계층 모델을 만든 이유는? 네트워크 구조상 정말 많은 방식으로 End to End 연결이 가능하다. 행성급의 전기 신호가 있다면 미국 - 한국을 안테나 - 안테나로 바로 연결할 수도 있는데, 이런 경우에는 허브, 스위치 등의 네트워크 장비들은 하나도 필요 없다. 그러나 그런 예외는 우주에서나 존재하므로, 대부분은 공유기에 모뎀을 써서 기지국에 연결한다. 이런 정형화된 경우를 고려해 고안된 것이 OSI 7계층이다. OSI 7계층은 다음의 장점들을 가진다. 복잡한 시스템에 대한 이해 공유 계층을 나눈 이유는 통신이 일어나는 과정을..

article thumbnail
[Network] - 네트워크의 구조와 개념
🖥️CS/🛜네트워크 2024. 2. 23. 14:54

네트워크는 크게 호스트와 노드로 이루어진다. End-to-End 통신에서 각 끝단을 호스트라고 하며, 그 사이 거쳐가는 모든 Path들을 노드라고 부르게 되는데, 네트워크적 관점에서 Node와 Path를 몇 번 거치느냐에 따라 속도에 차이가 생겨 전달시간과 망 점유율을 최소화하는 알고리즘이 중요하다. (BFS,Dijkstra 등) 호스트(Host) 인터넷 연결은 End to End 패킷 전달을 목표로하는데, 각 End는 개인의 단말 혹은 서버이고, 이를 Host 라고 부른다. 패킷의 입장에서는 발송자를 Source, 수신자를 Destination이라고 부른다. Host 이외의 Node End to End 통신을 단일 매체로 구현하는 것은 불가능에 가깝다. 패킷을 전달하기 위해선 패킷들을 잠시 저장하고 방..

article thumbnail
[Network] - 패킷(Packet)의 정의와 구조
🖥️CS/🛜네트워크 2024. 2. 23. 14:53

패킷이란? Package + Bucket 패킷은 pack과 bucket을 합친 말로, 우체국에서는 화물을 적당한 크기로 나눠 행선지를 표시하는 꼬리표를 붙이는데, 이러한 방식을 데이터 통신에 접목한 것이다. 쉽게 말해 컴퓨터 간 데이터를 주고받을 때 패킷은 네트워크를 통해 전송되는 일종의 데이터 조각이라고 생각할 수 있다. 그리고 컴퓨터 네트워크에서 이는 정해진 규칙으로서 작동한다. 데이터를 패킷으로 쪼개서 보내는 이유: 큰 데이터를 한번에 보내면, 많은 대역폭을 차지해 흐름을 원활하게 하지 못한다. 따라서 트래픽이 많아지게 된다. 큰 데이터를 보내는 방식 큰 데이터를 보낼때, 이는 작은 패킷들로 분할된다. 그리고 작은 패킷들로 분할된 데이터는 전달 시에 번호를 붙여서 전달이 된다. 수신자는 이 번호를 ..

article thumbnail
[intellij] - API 요청 IP 로그 남길 시 IPv4 설정
🛠️TOOL 2024. 2. 14. 17:11

서버로 API 요청을 보내는 IP들의 로그를 저장하고 싶은데, IP들이 IPv6로 찍혀 보기 불편한 경험이 있었다. 이를 intellij에서 다음 설정들을 통해 IPv4로 옵션을 바꿔줄 수 있었다. Run ➡️ Edit Configurations... Modify options ➡️ Add VM options 그리고 VM option에 다음 설정을 복붙한다. -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses=true 이후 실행하면 원하는대로 로그가 찍히는 것을 확인할 수 있다. reference https://gaemi606.tistory.com/entry/IntelliJ-IPv4-%EC%84%A4%EC%A0%95

article thumbnail
[WSL] - vscode version `GLIBC_2.28' not found , WSL2 ubuntu 버전 업그레이드
🛠️TOOL/🆚VSCODE 2024. 2. 14. 17:05

문제 원인 평소와 같이 wsl 터미널에서 code로 vscode를 사용하려고 하자, 다음과 같은 에러가 발생했다. ... /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found ... 무슨 상황인가하니, vs code가 의존 중인 glibc 버전에 따른 문제인데, 최신 vscode가 의존하는 glibc 버전이 우분투 18.04의 glibc 버전보다 최신 버전을 의존하기 때문에 발생하는 문제였다. From the bashonubuntuonwindows community on Reddit Explore this post and more from the bashonubuntuonwindows community www.reddit.com vscode 2..

article thumbnail
[Spring / trouble Shooting] - java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver

Spring Boot와 mysql 연동 중 다음 에러가 발생했다. 해결방법 1(실패): implementation 'mysql:mysql-connector-java' → implementation 'mysql:mysql-connector-j' 해결방법 2(실패): connenctor.jar 파일 설치 후 프로젝트에 추가 원인 알고보니 원인은 config를 정의할때 뒤에 공백이 하나 들어가있었던 것….. 진짜 바보같은 이유지만 항상 조심하자 찾아준 동기 왈 : "IDE가 친절하게 노란색으로 표시까지 해주잖아" 할말하않 ..

[Python] - 파이썬 log 라이브러리 rich 사용법과 logging의 중복 로그 현상

이번에는 python의 로깅을 자세히 파고들어봤다. 지난번 tqdm에 이어서 파이썬 로깅 라이브러리인 rich를 실제 프로젝트에 적용해보았다. 우선 가상환경에 라이브러리를 설치한다. pip install rich 다음 명령어로 설치 여부를 확인해 줄 수 있다. python -m rich 로깅 포맷 logging 모듈을 사용할 때에는 로깅 메시지의 포맷을 커스터마이징 할 수 있다. 사용 가능한 어트리뷰트는 공식 문서에 자세히 나와있다. ex) "%(asctime)s - %(levelname)s — %(funcName)s:%(lineno)d — %(message)s" # 위 포매팅 설정 결과는 아래와 같다. # 2021-07-01 12:29:53,182 - INFO - :1 - hello world 로깅 핸..

article thumbnail
[Python] - Selenium과 Chrome Driver log 숨기기

Chrome Driver를 쓰면 의도치 않아도 로그를 남길때 INFO 레벨에서 드라이버를 사용하는 로그가 남는다. 이게 한두번이면 모르지만, 크롤링을 여러사이트에서 하게 될경우 상당히 거슬리고 가독성이 안좋다. 따라서 다음 코드를 driver 설정 전에 추가해주면, 이 log를 숨길 수 있다. os.environ['WDM_LOG'] = '0' Selenium은 option을 설정할때 다음 코드를 추가해준다. options.add_argument('--log-level=3') options.add_argument('--disable-loging') reference https://stackoverflow.com/questions/70698508/how-to-stop-selenium-from-printing..