분류 전체보기

    정부에 재능 기부한 썰~ Feat. 코로나19 개인 안심번호

    핵클(https://hackle.io)에서 Software Enginner로 재직 중인 Aaron 입니다. 2020년 초에 유행하기 시작한 요놈의 바이러스는 아직도 기승을 부리고 있죠. 그러다 보니 코로나19 전파 초기 감염병 예방 및 감염 전파의 차단을 위해 전자출입명부(QR)와 수기출입명부가 도입되어 사용되고 있는데요. 여러분도 식당이나 카페 같은 다중이용 시설에서 사용해보신 적 있으시죠? 이번 게시글에서는 코드포코리아에서 활동하며 있었던 수기출입명부와 관련된 이야기를 풀어보고자 합니다. 수기출입명부 초기 수기출입명부는 이름과 휴대전화번호, 주소를 적게 되어 있었습니다. 그러나 사생활 침해가 심하다는 이유로 지난해 9월 이름을 제외하고 휴대전화 번호와 주소지 시·군·구까지만 기재하도록 방역수칙이 변경..

    스택과 힙 메모리, 그리고 멀티 스레드

    JVM Memory는 스택과 힙 영역으로 구분된다. 이들은 어떻게 다르고 멀티 스레드에서는 어떻게 동작하는걸까? Context 코틀린 프로그래밍에서 클래스의 인스턴스를 생성할 때 비용이 발생한다. 인스턴스를 생성하고 더 이상 사용하지 않을 경우 가비지 콜렉션 과정을 통해 메모리에서 해제하는 과정 또한 비용이 발생한다.따라서 인스턴스를 매번 생성할 필요가 없는 경우 매번 인스턴스를 생성하지 않는 것이 성능 측면에서 더 유리하다. 이 때문에 개발자는 요청마다 매번 인스턴스를 생성해야 하는지, 생성하지 않고 이미 생성된 인스턴스를 재사용할 것인지를 판단해야 한다. 이에 대한 기준은 인스턴스가 상태 값을 유지해야 하는지에 따라 구분된다. 송금 관리 시스템 예를 들어 은행 송금 시스템의 경우엔 송금을 관리하는 하..

    localhost는 IPv6와 IPv4 어떤걸로 동작할까?

    Java를 이용해 웹 서버를 구현하던 중 신기한 현상(?)을 발견해 그 내용과 해결 방법을 공유해보려 한다. Context Java에서 서버소켓을 생성하기 위해선 ServerSocket 클래스가 사용된다. int port = 8080; try (ServerSocket listenSocket = new ServerSocket(port)) { log.info("Web Application Server started {} port.", port); // 클라이언트가 연결될때까지 대기한다. Socket connection; while ((connection = listenSocket.accept()) != null) { // Do something .. } } 그리고 해당 서버에 액세스하는 방법은 크게 3가지 ..