{
    "componentChunkName": "component---src-templates-blog-js",
    "path": "/blog/page/5",
    "result": {"data":{"allMdx":{"nodes":[{"frontmatter":{"title":"[Go] defer문의 원리 및 활용","description":"defer 키워드에 대해 제대로 이해하지 못하고 무지성으로 쓰고 있다는 생각이 들어 핵심 내용을 정리합니다.","date":"October 8, 2023","category":"development","tags":["go"],"hero_image":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","backgroundColor":"#f8f8f8","images":{"fallback":{"src":"/static/a9caa05dfe40ef0cca65802e0330ec5c/12a3e/defer-wide.png","srcSet":"/static/a9caa05dfe40ef0cca65802e0330ec5c/9d9e0/defer-wide.png 225w,\n/static/a9caa05dfe40ef0cca65802e0330ec5c/cc174/defer-wide.png 450w,\n/static/a9caa05dfe40ef0cca65802e0330ec5c/12a3e/defer-wide.png 900w,\n/static/a9caa05dfe40ef0cca65802e0330ec5c/4dd11/defer-wide.png 1800w","sizes":"(min-width: 900px) 900px, 100vw"},"sources":[{"srcSet":"/static/a9caa05dfe40ef0cca65802e0330ec5c/3f003/defer-wide.webp 225w,\n/static/a9caa05dfe40ef0cca65802e0330ec5c/ba134/defer-wide.webp 450w,\n/static/a9caa05dfe40ef0cca65802e0330ec5c/e7f7d/defer-wide.webp 900w,\n/static/a9caa05dfe40ef0cca65802e0330ec5c/fc420/defer-wide.webp 1800w","type":"image/webp","sizes":"(min-width: 900px) 900px, 100vw"}]},"width":900,"height":450}}},"hero_image_alt":"defer image"},"id":"177d9890-4076-504c-8a9f-448abf1fe96e","slug":"development/go-defer-basics/"},{"frontmatter":{"title":"2023년도 개정 토플 홈 에디션 응시 후기","description":"토플 알못의 토플 응시 후기입니다. 토플 홈 에디션 응시 경험이 없는 사람들과 미래의 저 자신을 위해 기록을 남깁니다.","date":"October 3, 2023","category":"essay","tags":["toefl"],"hero_image":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","backgroundColor":"#f8f8f8","images":{"fallback":{"src":"/static/43ae9d4206fa45d7ce19265db77c2777/12a3e/toefl-home-edition-wide.png","srcSet":"/static/43ae9d4206fa45d7ce19265db77c2777/9d9e0/toefl-home-edition-wide.png 225w,\n/static/43ae9d4206fa45d7ce19265db77c2777/cc174/toefl-home-edition-wide.png 450w,\n/static/43ae9d4206fa45d7ce19265db77c2777/12a3e/toefl-home-edition-wide.png 900w,\n/static/43ae9d4206fa45d7ce19265db77c2777/4dd11/toefl-home-edition-wide.png 1800w","sizes":"(min-width: 900px) 900px, 100vw"},"sources":[{"srcSet":"/static/43ae9d4206fa45d7ce19265db77c2777/3f003/toefl-home-edition-wide.webp 225w,\n/static/43ae9d4206fa45d7ce19265db77c2777/ba134/toefl-home-edition-wide.webp 450w,\n/static/43ae9d4206fa45d7ce19265db77c2777/e7f7d/toefl-home-edition-wide.webp 900w,\n/static/43ae9d4206fa45d7ce19265db77c2777/fc420/toefl-home-edition-wide.webp 1800w","type":"image/webp","sizes":"(min-width: 900px) 900px, 100vw"}]},"width":900,"height":450}}},"hero_image_alt":"toefl home edition image"},"id":"84ed835c-b43d-5c5c-9dee-1a5b20e4395b","slug":"essay/toefl-home-edition-retrospective/"},{"frontmatter":{"title":"[Go] 의존성 역전 원칙","description":"SOLID 중 D에 해당하는 의존성 역전 원칙에 대해 가볍게 설명하겠습니다. Go 코드에서 DIP를 적용할 경우 어떤 상황이 발생하는지를 예시 코드로 설명합니다.","date":"September 22, 2023","category":"development","tags":["go","oop","dip"],"hero_image":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","backgroundColor":"#f8f8f8","images":{"fallback":{"src":"/static/09a78c09fa7b1618089ca007b4cc24ad/12a3e/dip-in-go-wide.png","srcSet":"/static/09a78c09fa7b1618089ca007b4cc24ad/9d9e0/dip-in-go-wide.png 225w,\n/static/09a78c09fa7b1618089ca007b4cc24ad/cc174/dip-in-go-wide.png 450w,\n/static/09a78c09fa7b1618089ca007b4cc24ad/12a3e/dip-in-go-wide.png 900w,\n/static/09a78c09fa7b1618089ca007b4cc24ad/4dd11/dip-in-go-wide.png 1800w","sizes":"(min-width: 900px) 900px, 100vw"},"sources":[{"srcSet":"/static/09a78c09fa7b1618089ca007b4cc24ad/3f003/dip-in-go-wide.webp 225w,\n/static/09a78c09fa7b1618089ca007b4cc24ad/ba134/dip-in-go-wide.webp 450w,\n/static/09a78c09fa7b1618089ca007b4cc24ad/e7f7d/dip-in-go-wide.webp 900w,\n/static/09a78c09fa7b1618089ca007b4cc24ad/fc420/dip-in-go-wide.webp 1800w","type":"image/webp","sizes":"(min-width: 900px) 900px, 100vw"}]},"width":900,"height":450}}},"hero_image_alt":"dip in go image"},"id":"05ce150a-ec42-5b24-9742-94d7233f5947","slug":"development/dip-in-go/"},{"frontmatter":{"title":"[Go] 개방 폐쇄 원칙","description":"SOLID 중 O에 해당하는 개방 폐쇄 원칙에 대해 가볍게 설명하겠습니다. Go 코드에서 OCP를 적용하는 방법을 예시 코드로 설명합니다.","date":"September 21, 2023","category":"development","tags":["go","oop","ocp"],"hero_image":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","backgroundColor":"#f8f8f8","images":{"fallback":{"src":"/static/abbfe074ee484e5ce54b72c8f3d69554/12a3e/ocp-in-go-wide.png","srcSet":"/static/abbfe074ee484e5ce54b72c8f3d69554/9d9e0/ocp-in-go-wide.png 225w,\n/static/abbfe074ee484e5ce54b72c8f3d69554/cc174/ocp-in-go-wide.png 450w,\n/static/abbfe074ee484e5ce54b72c8f3d69554/12a3e/ocp-in-go-wide.png 900w,\n/static/abbfe074ee484e5ce54b72c8f3d69554/4dd11/ocp-in-go-wide.png 1800w","sizes":"(min-width: 900px) 900px, 100vw"},"sources":[{"srcSet":"/static/abbfe074ee484e5ce54b72c8f3d69554/3f003/ocp-in-go-wide.webp 225w,\n/static/abbfe074ee484e5ce54b72c8f3d69554/ba134/ocp-in-go-wide.webp 450w,\n/static/abbfe074ee484e5ce54b72c8f3d69554/e7f7d/ocp-in-go-wide.webp 900w,\n/static/abbfe074ee484e5ce54b72c8f3d69554/fc420/ocp-in-go-wide.webp 1800w","type":"image/webp","sizes":"(min-width: 900px) 900px, 100vw"}]},"width":900,"height":450}}},"hero_image_alt":"ocp in go image"},"id":"25ed695d-f6f5-5ce7-8a0f-de99271e4ae5","slug":"development/ocp-in-go/"},{"frontmatter":{"title":"[Go] 인터페이스 분리 원칙","description":"SOLID 중 I에 해당하는 인터페이스 분리 원칙에 대해 가볍게 설명하겠습니다. Go 코드에서 ISP를 적용하는 방법을 예시 코드로 설명합니다.","date":"September 20, 2023","category":"development","tags":["go","oop","isp"],"hero_image":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","backgroundColor":"#f8f8f8","images":{"fallback":{"src":"/static/0a5d5fc19494a1d3a5fd60d594603e36/12a3e/isp-in-go-wide.png","srcSet":"/static/0a5d5fc19494a1d3a5fd60d594603e36/9d9e0/isp-in-go-wide.png 225w,\n/static/0a5d5fc19494a1d3a5fd60d594603e36/cc174/isp-in-go-wide.png 450w,\n/static/0a5d5fc19494a1d3a5fd60d594603e36/12a3e/isp-in-go-wide.png 900w,\n/static/0a5d5fc19494a1d3a5fd60d594603e36/4dd11/isp-in-go-wide.png 1800w","sizes":"(min-width: 900px) 900px, 100vw"},"sources":[{"srcSet":"/static/0a5d5fc19494a1d3a5fd60d594603e36/3f003/isp-in-go-wide.webp 225w,\n/static/0a5d5fc19494a1d3a5fd60d594603e36/ba134/isp-in-go-wide.webp 450w,\n/static/0a5d5fc19494a1d3a5fd60d594603e36/e7f7d/isp-in-go-wide.webp 900w,\n/static/0a5d5fc19494a1d3a5fd60d594603e36/fc420/isp-in-go-wide.webp 1800w","type":"image/webp","sizes":"(min-width: 900px) 900px, 100vw"}]},"width":900,"height":450}}},"hero_image_alt":"isp in go image"},"id":"ce6258de-de51-5418-bf89-6db3739e568d","slug":"development/isp-in-go/"},{"frontmatter":{"title":"[Go] 추상화와 다형성","description":"Go 인터페이스를 통해 추상화와 다형성의 정의를 가볍게 설명하겠습니다.","date":"September 19, 2023","category":"development","tags":["go","oop","abstraction","polymorphism"],"hero_image":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","backgroundColor":"#f8f8f8","images":{"fallback":{"src":"/static/29095862f9be24798bc1fe2078bcf596/12a3e/abstraction-and-polymorphism-wide.png","srcSet":"/static/29095862f9be24798bc1fe2078bcf596/9d9e0/abstraction-and-polymorphism-wide.png 225w,\n/static/29095862f9be24798bc1fe2078bcf596/cc174/abstraction-and-polymorphism-wide.png 450w,\n/static/29095862f9be24798bc1fe2078bcf596/12a3e/abstraction-and-polymorphism-wide.png 900w,\n/static/29095862f9be24798bc1fe2078bcf596/4dd11/abstraction-and-polymorphism-wide.png 1800w","sizes":"(min-width: 900px) 900px, 100vw"},"sources":[{"srcSet":"/static/29095862f9be24798bc1fe2078bcf596/3f003/abstraction-and-polymorphism-wide.webp 225w,\n/static/29095862f9be24798bc1fe2078bcf596/ba134/abstraction-and-polymorphism-wide.webp 450w,\n/static/29095862f9be24798bc1fe2078bcf596/e7f7d/abstraction-and-polymorphism-wide.webp 900w,\n/static/29095862f9be24798bc1fe2078bcf596/fc420/abstraction-and-polymorphism-wide.webp 1800w","type":"image/webp","sizes":"(min-width: 900px) 900px, 100vw"}]},"width":900,"height":450}}},"hero_image_alt":"abstraction and polymorphism image"},"id":"f55479d6-0c95-5cec-aaf7-66f46992b0f1","slug":"development/abstraction-and-polymorphism-in-go/"},{"frontmatter":{"title":"[Go] 객체 조합과 필드의 종류","description":"익명 필드, exported/unexported 필드 등 다른 타입의 객체를 조합하는 방식에 따라 발생하는 차이점에 대해 상속 대신 조합이라는 맥락에서 비교합니다.","date":"September 17, 2023","category":"development","tags":["go","oop","composition"],"hero_image":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","backgroundColor":"#f8f8f8","images":{"fallback":{"src":"/static/b3bae6d959b7213ffd985cc4223edbcc/12a3e/composition-in-go-wide.png","srcSet":"/static/b3bae6d959b7213ffd985cc4223edbcc/9d9e0/composition-in-go-wide.png 225w,\n/static/b3bae6d959b7213ffd985cc4223edbcc/cc174/composition-in-go-wide.png 450w,\n/static/b3bae6d959b7213ffd985cc4223edbcc/12a3e/composition-in-go-wide.png 900w,\n/static/b3bae6d959b7213ffd985cc4223edbcc/4dd11/composition-in-go-wide.png 1800w","sizes":"(min-width: 900px) 900px, 100vw"},"sources":[{"srcSet":"/static/b3bae6d959b7213ffd985cc4223edbcc/3f003/composition-in-go-wide.webp 225w,\n/static/b3bae6d959b7213ffd985cc4223edbcc/ba134/composition-in-go-wide.webp 450w,\n/static/b3bae6d959b7213ffd985cc4223edbcc/e7f7d/composition-in-go-wide.webp 900w,\n/static/b3bae6d959b7213ffd985cc4223edbcc/fc420/composition-in-go-wide.webp 1800w","type":"image/webp","sizes":"(min-width: 900px) 900px, 100vw"}]},"width":900,"height":450}}},"hero_image_alt":"composition in go image"},"id":"1d28bbcc-306c-5983-b452-f225321d6a49","slug":"development/composition-in-go/"},{"frontmatter":{"title":"[OOP] 상속 대신 조합","description":"예시 코드를 통해 코드 재사용 목적의 상속의 문제점을 파악하고, 서브클래싱, 서브타이핑, 리스코프 치환원칙 등의 키워드를 통해 상속 대신 조합이라는 표현에 대해 정리하겠습니다.","date":"September 16, 2023","category":"development","tags":["oop","lsp","inheritance","composition"],"hero_image":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","backgroundColor":"#f8f8f8","images":{"fallback":{"src":"/static/dbd62544f8d85c24933ba484afc0eca0/12a3e/composition-over-inheritance-wide.png","srcSet":"/static/dbd62544f8d85c24933ba484afc0eca0/9d9e0/composition-over-inheritance-wide.png 225w,\n/static/dbd62544f8d85c24933ba484afc0eca0/cc174/composition-over-inheritance-wide.png 450w,\n/static/dbd62544f8d85c24933ba484afc0eca0/12a3e/composition-over-inheritance-wide.png 900w,\n/static/dbd62544f8d85c24933ba484afc0eca0/4dd11/composition-over-inheritance-wide.png 1800w","sizes":"(min-width: 900px) 900px, 100vw"},"sources":[{"srcSet":"/static/dbd62544f8d85c24933ba484afc0eca0/3f003/composition-over-inheritance-wide.webp 225w,\n/static/dbd62544f8d85c24933ba484afc0eca0/ba134/composition-over-inheritance-wide.webp 450w,\n/static/dbd62544f8d85c24933ba484afc0eca0/e7f7d/composition-over-inheritance-wide.webp 900w,\n/static/dbd62544f8d85c24933ba484afc0eca0/fc420/composition-over-inheritance-wide.webp 1800w","type":"image/webp","sizes":"(min-width: 900px) 900px, 100vw"}]},"width":900,"height":450}}},"hero_image_alt":"composition over inheritance image"},"id":"331f0bbf-2787-53b1-a922-62e0526b3efa","slug":"development/composition-over-inheritance/"},{"frontmatter":{"title":"[Go] 구조체 캡슐화하기","description":"캡슐화의 정의를 설명하고 Go 언어에서 캡슐화를 구현할 수 있는 방법과 한계에 대해 다뤄보겠습니다. 예제 코드를 통해 Go 구조체의 내부 구현을 숨기는 방안을 단계적으로 정리하겠습니다.","date":"September 13, 2023","category":"development","tags":["go","oop","encapsulation"],"hero_image":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","backgroundColor":"#f8f8f8","images":{"fallback":{"src":"/static/54ed42ec8080265f23681e5b2b1e6673/12a3e/encapsulating-go-structs-wide.png","srcSet":"/static/54ed42ec8080265f23681e5b2b1e6673/9d9e0/encapsulating-go-structs-wide.png 225w,\n/static/54ed42ec8080265f23681e5b2b1e6673/cc174/encapsulating-go-structs-wide.png 450w,\n/static/54ed42ec8080265f23681e5b2b1e6673/12a3e/encapsulating-go-structs-wide.png 900w,\n/static/54ed42ec8080265f23681e5b2b1e6673/4dd11/encapsulating-go-structs-wide.png 1800w","sizes":"(min-width: 900px) 900px, 100vw"},"sources":[{"srcSet":"/static/54ed42ec8080265f23681e5b2b1e6673/3f003/encapsulating-go-structs-wide.webp 225w,\n/static/54ed42ec8080265f23681e5b2b1e6673/ba134/encapsulating-go-structs-wide.webp 450w,\n/static/54ed42ec8080265f23681e5b2b1e6673/e7f7d/encapsulating-go-structs-wide.webp 900w,\n/static/54ed42ec8080265f23681e5b2b1e6673/fc420/encapsulating-go-structs-wide.webp 1800w","type":"image/webp","sizes":"(min-width: 900px) 900px, 100vw"}]},"width":900,"height":450}}},"hero_image_alt":"encapsulating go structs image"},"id":"9b5fe3d8-b384-53f6-8752-e695e594acad","slug":"development/encapsulating-go-structs/"},{"frontmatter":{"title":"[Go] 벤치마크 테스트로 성능 측정하기","description":"Go 언어에서 성능 측정을 위해 제공하는 벤치마크 테스트에 대해 간략히 정리하겠습니다. Set 자료구조를 다양한 방식으로 구현하고 각 구현체의 성능을 비교해보고자 합니다.","date":"August 13, 2023","category":"development","tags":["go","test","benchmark"],"hero_image":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","backgroundColor":"#f8f8f8","images":{"fallback":{"src":"/static/5b6908692dce06098a861d6956888d8e/12a3e/benchmark-wide.png","srcSet":"/static/5b6908692dce06098a861d6956888d8e/9d9e0/benchmark-wide.png 225w,\n/static/5b6908692dce06098a861d6956888d8e/cc174/benchmark-wide.png 450w,\n/static/5b6908692dce06098a861d6956888d8e/12a3e/benchmark-wide.png 900w,\n/static/5b6908692dce06098a861d6956888d8e/4dd11/benchmark-wide.png 1800w","sizes":"(min-width: 900px) 900px, 100vw"},"sources":[{"srcSet":"/static/5b6908692dce06098a861d6956888d8e/3f003/benchmark-wide.webp 225w,\n/static/5b6908692dce06098a861d6956888d8e/ba134/benchmark-wide.webp 450w,\n/static/5b6908692dce06098a861d6956888d8e/e7f7d/benchmark-wide.webp 900w,\n/static/5b6908692dce06098a861d6956888d8e/fc420/benchmark-wide.webp 1800w","type":"image/webp","sizes":"(min-width: 900px) 900px, 100vw"}]},"width":900,"height":450}}},"hero_image_alt":"benchmark image"},"id":"e1c867e6-8fce-50ef-b29f-84b06d83238c","slug":"development/go-benchmark/"}],"pageInfo":{"currentPage":5,"hasNextPage":true,"hasPreviousPage":true,"pageCount":9,"totalCount":86}}},"pageContext":{"skip":40}},
    "staticQueryHashes": ["1903006949","272758454"]}