[카테고리:] 프로그래밍

  • Sveltekit등 hydration이 제공되는 Front를 쓸 때는 SSR로만 쓸 때에도 데이터 유출을 조심해야 함

    Sveltekit등 hydration이 제공되는 Front를 쓸 때는 SSR로만 쓸 때에도 데이터 유출을 조심해야 함

    최근 Spring Boot, SvelteKit을 이용해서 사이드 프로젝트를 몇 개 살펴봤다. 프로젝트에서는 프론트를 Sveltekit을 SSR (Server-side Rendering) 모드로만 사용했다. Client-Side Rendering 기능은 꺼놓은 상태였다. 이들 사이트에서 서버 사이드 렌더링(SSR)에서 쓰이는 데이터가 외부로 노출되는 것을 발견했다. 개발자가 부주의 하다면 민감한 정보가 외부로 노출 될 수 있다. CSR 에서는 (당연히) 모든 데이터가 클라이언트에게 전송됨 CSR이 켜져있다면 중요한 데이터가…

  • Docker의 기초 컨셉

    Docker의 기초 컨셉

    주변 지인분들에게 시스템 아키텍쳐에 Docker 도입이 필요하다고 약을 팔았다. 약을 팔기 위해서 Docker의 기초 컨셉에 대해 소개하는 자료를 만들게 되었다. 이것을 그냥 내부에서 쓰고 버리기에는 아까워서 블로그에도 옮겨둔다. Container 기술 가상 머신은 하이퍼바이저(Hypervisor)를 통해 하나의 물리적 서버에서 여러 운영 체제를 실행할 수 있게 하는 기술이다. 예를 들어, 물리 서버에 Windows Server가 설치되어 있더라도 VMware나 VirtualBox를…

  • 리눅스 사지방 접속기 #2

    리눅스 사지방 접속기 #2

    에피타이저 필자가 군복무를 하던 시절은 2018년 ~ 2020년이다. 우리 부대에는 2019년 중·후반에 병사 휴대폰 제도가 도입됐다. 즉, 1년 반 정도는 인터넷을 하려면 사지방에 갔어야 했다. 그러나, 사지방의 네트워크 설정을 이상하게 해 놓아서 구글, 유튜브, 그 외 172.*로 시작하는 모든 서버에 접속이 제대로 되지 않았다. 172.*에는 172.30.1.1 처럼 내부망 대역이 있는데, 그 부분의 설정을 잘 못…

  • ARM서버용 Spring Boot Dockerfile (Dokku)

    ARM서버용 Spring Boot Dockerfile (Dokku)

    필자는 2개의 서버를 돌리고 있다. 하나는 잡탕구리 서버이고, 나머지 하나는 서비스 전용 서버이다. 원래는 잡탕구리 서버에서 모든걸 다 돌렸었다. 그러다가 dokku에 정착하면서 조금 달라졌다. 필자가 처음 Dokku를 쓸 때만 해도 ARMv8을 제대로 지원하지 못했다. 그래서 AMD64용 서버를 하나 더 돌려 사용했다. 서버를 두개씩 돌리니까 서버비가 꽤 나오기 시작했다. 사실 이전에는 부담이 아니었는데, 환율이 오르니까 앞자리가…

  • 분산 시스템의 기초 개론 – 2

    이전 글에서 Write-Ahead-Log, Leader and Follower, Version Control, Majority Quorum, Generation Clock에 대해 언급 했다. 이번 글에서는 그 이후의 것을 알아본다. 이 글은 “Patterns of Distributed Systems” (Unmesh Joshi)의 책을 기초로 쓰였다. Write-Ahead-Log(WAL): 모든 단위 작업을 디스크에 기록한다. 디스크에 기록이 완료된 작업만이 완료(Commit) 처리 될 수 있다. 시스템에 장애가 발생해도 Log를 Replay하여 복구 할 수…

  • 유해 차단을 회피하는 사이트

    유해 차단을 회피하는 사이트

    사이트를 유해 사이트로 분류하며 각 통신사에 차단 지시를 내리는 곳은 “방송통신심의위원회” 이다. 방송통신심의위원회의 차단 의결에도 불구하고, 불법 유해 사이트들 중에서 warning.or.kr 페이지를 회피 기동하는 곳이 심심치 않게 보인다. 이 사이트들은 크게 두가지로 부류로 나뉘어 진다. (1) 뉴토끼 처럼 도메인을 계속 구매하는 곳과 (2) IP 주소를 주기적으로 변경하는 곳으로 나뉘어 진다. 방송통신심의위원회(이하 방심위)에서 이미 상황을 알고…

  • Dokku를 이용한 Sveltekit 배포 스크립트

    Dokku를 이용한 Sveltekit 배포 스크립트

    이때껏 Sveltekit로 간단한 사이트를 몇 개 만들었다. 매번 수동으로 Dokku를 설정하는 것이 번거로워서 이 글에 설정법을 간단히 정리한다. 이 글은 adapter-node 만을 다룬다. adapter-node의 기본 설정 방법은 https://svelte.dev/docs/kit/adapter-node 에서 확인할 수 있다. 다른 어뎁터로 빌드했다면 적용되지 않는다. Dokku에 프로젝트를 올리면 herokuish가 package-lock.json 와 package.json 를 확인하여 npm 프로젝트로 인식한다. 그리고 알아서 nodejs 빌드팩으로 프로젝트를 빌드한다.…

  • BYOIP를 이용한 Anycast의 라우팅 리전(지역) 관찰기 (Vultr)

    BYOIP를 이용한 Anycast의 라우팅 리전(지역) 관찰기 (Vultr)

    이전 글에서 IPXO에서 IP를 임대한 후, BYOIP와 BGP를 이용하여 VM에 IP를 적용 시키는 것을 해 보았다. 이번 글에서는 여러 리전에서 BGP를 발사해 볼 예정이다. 실제로 BGP 전파시에 얼마나 시간이 걸리는지에 대한 글이 전무했는데, 이 글에서는 실제 Anycast 사용 경험을 작성한다. 이전 글을 못 읽은 분들을 위해 간략히 BGP를 설명하려 한다. 본인이 IP주소를 가지고 있다면 주변…

  • IPXO 에서 IP블록(/24) 임대 후 BYOIP 사용해 보기

    IPXO 에서 IP블록(/24) 임대 후 BYOIP 사용해 보기

    전체 과정 이 글에서는 Oracle Cloud와 Vultr에서 Bring your own IP 를 사용하는 방법을 다룬다. 궁극적으로, 몇개의 글에 걸쳐 BYOIP가 잘 작동하는지와 Anycast가 예상대로 진행되는지를 다룰 것이다. 전체적인 과정 자체는 AWS, GCP에서도 유사 할 것이다. Bring Your Own IP를 사용하기 위한 과정은 크게 다음과 같다. BYOIP를 사용하기 위한 비용은 다음과 같이 쓰였다. (업체 및 IP…

  • Linux TUN 장치 기본 다루기

    Linux TUN 장치 기본 다루기

    리눅스에서 TUN 인터페이스를 이용해서 이전에 썻던 Mutli-Path 오버레이 네트워크를 만들고 있다. 현재는 TUN 제어 자체는 어떻게 됐는데, UDP 소켓을 관리하고 연결 정보를 처리하는데 조금 어려움이 있다. 연결 관리 구조체 하나를 상위의 전체 관리 모듈과 본인 스스로에게서 접근하려다 보니 소유권이 발목을 잡는다. 생각해둔 방법이 없진 않은데, 아무래도 코드가 더러워지는것 같아서 꺼려진다. 각설하고, 개발간 초보 TUN 개발자가…

목차