공부
-
[Network] GSLB (Global Server Load Balancing)공부/컴퓨터 네트워크 2025. 1. 31. 23:03
알고 있어야하는 내용- DNS- Load Balancing 위 내용과 관련된 내용은 생략해서 적었다. 왜 GSLB가 나오게 됐을까?나름대로 이해한 내용을 정리해보았다. 물리적인 거리의 한계유럽에서 살고 있는 사용자가 티스토리에 접속한다고 가정해보자. 사이트가 마법처럼 뿅하고 바로 접속되는 것이 아니니 어떤 과정을 거칠 것이다. 마침 티스토리의 데이터센터가 한국에만 있다고 해보자. 보통 우리가 네트워크 패킷을 주고 받았을 때의 과정을 공부했던 것을 간단하게 이야기하자면 사용자 컴퓨터에서 시작해 유럽의 어느 통신사 DNS에 도착할테고, 해당 DNS는 어떤 과정을 거쳐서 티스토리의 IP 주소를 알려줄 것이다. 이때 IP 주소는 티스토리의 데이터센터가 한국에만 있다고 가정했으니 한국의 IP 주소를 받을 것이다...
-
[DB] NoSQL 스토리지 엔진 발전 과정공부/데이터베이스 2024. 6. 23. 22:48
1학기에 Hadoop 수업을 들었는데, 가장 마지막 수업의 제일 마지막 내용에 SSTable이 나왔다. 수업에서는 Hadoop Ecosystem 중 하나인 HBase에서 쓰이는데, SSTable에 대해 더 찾아보니까 NoSQL Storage Engine 발전 과정과 관련이 있었다. 이번 포스팅은 RDB에 사용되는 알고리즘인 B-Tree에 대해 알고 있는 상태로 글을 읽어야 더 도움이 된다. 왜냐하면 B+Tree는 읽기 성능이 좋은 기술이고, LSM Tree는 쓰기 성능이 좋은 기술이라 RDB와 NoSQL의 대표적인 차이점이니 생각해보면서 읽어보면 더 많은 내용을 얻어갈 수 있다. 1. Append Only File (AOF)우선 시작하기 전에 글에 나오는 데이터는 로그 데이터이고, key-value..
-
[Network] WebSocket공부/컴퓨터 네트워크 2024. 6. 14. 16:22
1. 웹소켓에 대한 간단한 정보인터넷에 널리 알려진 내용부터 잠깐 살펴보고 가자. 먼저 웹소켓이 없었을 때부터 이야기할 예정이라 웹소켓만의 특징을 먼저 알고 있는 상태에서 읽는게 도움이 된다. - HTTP와 같은 Application 계층의 프로토콜이다.- 데이터를 양방향으로 주고 받을 수 있다. 그래서 서버가 먼저 데이터를 보낼 수 있다.- HTTP / HTTPS에서 Upgrade, Connection 헤더를 사용해 웹소켓을 사용할 수 있다. 이번 포스팅은 소켓에 대해 알고 있어어한다. 아래 글을 보고 먼저 소켓에 대해 이해를 한 다음 글을 보는게 좋다.https://hello70825.tistory.com/598 [Network, OS] Socket, I/O Multiplexing, Event Lo..
-
[Network, OS] Socket, I/O Multiplexing, Event Loop공부/운영체제(OS) 2024. 6. 7. 16:57
Socket → I/O Multiplexing → Event Loop 순서로 공부한 내용이다.따로따로 내용을 분리하기엔 서로 연결된 내용이 많아서 한 번에 작성했다. 0. UNIX 철학Everything is a file 객체지향에서 "모든 것은 객체로 이루어져 있다"처럼 UNIX 운영체제의 철학은 "모든 것은 파일로 이루어져 있다"이다.소켓이든, 프로그램이든, 파이프라인이든 모든게 파일로 이루어져 있다는 것이다.이 내용을 기억해두면 좋은게 '추상적 개념'이 아닌 '파일'이라는 관점으로 보아야 수월하게 이해하는데 도움이 된다. 1. 소켓이란?[1] 개념소켓은 운영체제가 제공하는 인터페이스로 애플리케이션 계층의 프로그램이 네트워크 서비스를 사용할 수 있게하는 역할을 한다. TCP/IP 4계층으로 이..
-
[Network] HTTPS공부/컴퓨터 네트워크 2024. 5. 21. 15:47
1. HTTP와 HTTPSHTTP와 HTTPS의 큰 차이점은 패킷이 암호화되냐, 암호화되지 않냐의 차이이다.HTTP는 80번 포트번호로 패킷을 주고 받고, HTTPS는 443 포트번호로 모든 통신을 진행하게 된다.아래 와이어샤크를 통해 패킷을 확인해보자 HTTP 패킷HTTPS 패킷 큰 흐름의 HTTP/HTTPS 트랜잭션 HTTP는 80번 포트를 통해 3-way handshake를 통해 연결을 수립하고, 통신을 하다가 서로 주고 받을 패킷이 없으면 4-way handshake를 통해 통신을 종료한다.HTTPS는 살짝 다르게 3-way handshake를 한 이후 SSL handshake를 진행하고, 이후 통신을 끊을 때에는 SSL 닫힘 통지가 먼저 일어나는데, 이때 클라이언트와 서버가 close_noti..
-
[Selenium] AutoCloseable이 없는 이유공부/etc 2023. 2. 19. 23:12
자바의 정석 예외처리 파트를 읽고 있는데, try-with-resources문을 사용하는 것이 좋아보였다. 실제로 이게 좋은 것인가?하고 찾아보니 이펙티브 자바에도 이런 내용이 있어서 개선할 코드가 있으면 직접 수정하는 것도 좋아보였다. 그래서 작년에 했던 산학프로젝트에 ChromeDriver를 try-with-resources로 적용해 PR을 보내려고 했는데, 빨간줄이 나와 내부 코드를 확인해보니 AutoCloseable 인터페이스를 상속하지 않은 상태였다. 기여를 해볼만하다는 생각이 들어서 셀레니움 깃허브에 들어갔는데, 이미 나와 같은 생각을 했던 사람들이 여러명 존재했다. 사실 별 기대조차 안했다. 내가 이걸 발견할 정도면 이미 다른 사람들이 발견했을테니... 이유 1. close() 이름 중복 내..
-
powershell, bash gradlew 한글 깨짐 현상 수정공부/etc 2022. 10. 19. 23:50
IntelliJ에서 터미널을 사용하는중 gradlew와 gradlew.bat을 통해 clean test를 실행하려고 하는데, 평소에 잘 나오던 한글 인식을 못해서 컴파일이 불가능한 현상이 나타났다. 디렉토리 목록을 봐도 한글이 잘나오고, git log를 확인해도 한글이 잘나오는데 gradlew를 실행하니 한글을 못 알아먹는 상태여서 정신이 나갈뻔했다. 이때 나왔던 오류는 unmappable character for encoding MS949, illegal character: '\ufffd' 가 섞여서 나왔고, 출력되어야 할 한글은 반절은 제대로 나오고, 나머지는 물음표로 나왔다. 먼저 구글링을 해보니 powershell 인코딩 자체를 UTF-8로 변경하는 방법을 쓰라는데 적용해봐도 그대로였고, 아래 방..
-
[html2pdf, Java] HTML을 PDF로 변환해주는 오픈소스공부/etc 2022. 10. 13. 18:21
1. Flying Saucer https://github.com/flyingsaucerproject/flyingsaucer GitHub - flyingsaucerproject/flyingsaucer: XML/XHTML and CSS 2.1 renderer in pure Java XML/XHTML and CSS 2.1 renderer in pure Java. Contribute to flyingsaucerproject/flyingsaucer development by creating an account on GitHub. github.com 특징 LGPL-2.1 이상의 라이센스를 사용한다. 2021년 10월부터 업데이트가 끊겼다. HTML → XHTML → PDF 순서로 변환을 해야한다. 장점 LGPL 라..