| Ko

Go Package Naming Conventions

This article references the official Go blog’s “Package Names,” Go code review comments, and standard library design cases. Go Package Design Philosophy Go’s package system has a unique philosophy compared to other languages, reflecting Go’s core design principles of simplicity and clarity. Go did not adopt complex package hierarchies like Java or C++’s namespace system. Instead, it separates package paths and package names to enable concise yet expressive code. Go’s package conventions do not enforce strict rules for directory structure or architectural patterns. This is a deliberate design choice by the Go team. Go language creators, including Rob Pike and Ken Thompson, preferred an approach that provides flexibility to programmers while offering clear guidelines. This philosophy can be observed in the package structure of the standard library. Go’s package conventions are built around the following key principles. ...

February 15, 2025 · 7 min · 1432 words · In-Jun

GitOps Deployment Strategies Push vs Pull

GitOps is an operational methodology that uses Git as the Single Source of Truth to manage declarative states of infrastructure and applications and deploy them automatically. The term was first proposed by Alexis Richardson, CEO of Weaveworks, in 2017 and introduced to the cloud-native community. GitOps extends the Git workflow familiar to developers (Pull Requests, code reviews, branching strategies, etc.) into the infrastructure operations domain, and has become a core paradigm of modern DevOps practices when combined with declarative infrastructure platforms like Kubernetes. ...

February 14, 2025 · 9 min · 1823 words · In-Jun

Running OpenSSH Server on Ubuntu

SSH (Secure Shell) is an encrypted network protocol that enables secure remote access to other computers over a network for executing commands and transferring files. It was developed in 1995 by Tatu Ylönen at Helsinki University of Technology in Finland to address security vulnerabilities in Telnet and rsh (remote shell). Today, OpenSSH has become the de facto standard implementation and serves as a core tool for server management worldwide. Installing and configuring an SSH server on Ubuntu enables remote server management not only within local networks but also over the internet. This guide covers the entire process from OpenSSH server installation to security configuration. ...

August 14, 2024 · 7 min · 1362 words · In-Jun

Setting Static IP on Ubuntu 24.04 LTS

A static IP address is an IP address manually specified by a network administrator instead of being dynamically assigned from a DHCP server. It is essential in environments where the IP address must not change, such as server operation, remote access, and network service hosting. Ubuntu 24.04 LTS uses Netplan as the default network configuration tool and also supports nmcli and nmtui interfaces through NetworkManager, allowing users to configure networks in their preferred way. ...

August 10, 2024 · 6 min · 1161 words · In-Jun

OAuth 2.0 Frontend and Backend Roles

OAuth 2.0 is an authorization framework standardized as RFC 6749 by the IETF (Internet Engineering Task Force) in 2012, designed to allow users to grant third-party applications limited access to their resources without exposing their credentials (passwords). It is currently adopted as the standard for social login and API authorization by most major internet services including Google, Facebook, GitHub, and Twitter. The Origins of OAuth The Problem OAuth Solves Before OAuth, users had to directly provide their usernames and passwords to third-party applications, which created serious security risks. Users had no way to know which applications would safely manage their credentials, nor could they granularly control access permissions or revoke them at any time. ...

August 3, 2024 · 8 min · 1506 words · In-Jun

Network Switch Types and Selection

Network switches emerged in the early 1990s to overcome the performance limitations of Ethernet networks. They addressed the inefficiency of traditional hubs that broadcast data to all ports by providing the capability to selectively forward frames based on destination MAC addresses, becoming a core component of modern network infrastructure. In the OSI (Open Systems Interconnection) 7-layer model, switches are classified from L1 to L7 based on which layer they operate at. Each layer’s switch has unique characteristics and purposes, analyzing protocol information at that layer to process traffic. ...

August 1, 2024 · 9 min · 1818 words · In-Jun

Pull Request Review Best Practices

PR (Pull Request) review is a core collaborative activity that improves team code quality, shares knowledge among developers, and prevents potential bugs in advance. Since GitHub introduced the Pull Request feature in 2008, it has become the standard code integration method in both open source projects and enterprise development environments. PR reviews go beyond simply finding errors in code to become an essential quality management activity in software development that helps team members understand each other’s code, maintain a consistent codebase, and make better design decisions through collective intelligence. ...

July 31, 2024 · 9 min · 1910 words · In-Jun

Using Helm in Kubernetes

Helm is a package manager for packaging, deploying, and version management of Kubernetes applications. It was first developed by Deis (now Microsoft) in 2015, joined CNCF (Cloud Native Computing Foundation) in 2018, and has become the most widely used deployment tool in the Kubernetes ecosystem. Helm performs a similar role in Kubernetes as apt or yum in Linux or Homebrew in macOS. It bundles complex Kubernetes manifest files into packages called Charts, enabling installation, upgrade, and rollback with a single command while automating environment-specific configuration management and dependency handling to significantly reduce deployment complexity. ...

July 28, 2024 · 7 min · 1360 words · In-Jun

Setting Up Single-Node Kubernetes Cluster on Ubuntu 24.04

Kubernetes is a container orchestration platform that Google open-sourced in 2014. It is now managed by CNCF (Cloud Native Computing Foundation) and has become the de facto standard for automating the deployment, scaling, and management of containerized applications. Production environments configure multi-node clusters for high availability, but single-node clusters are sufficient for development, testing, and learning purposes. This guide covers the entire process of building a single-node Kubernetes cluster using kubeadm on Ubuntu 24.04 LTS. ...

July 27, 2024 · 6 min · 1102 words · In-Jun

Temporarily Saving Changes with Git Stash

Concept and History of Git Stash Git stash is a feature first introduced in Git version 1.5.3 in 2007. It provides a mechanism to save changes in the Working Directory (modified tracked files and staged changes) to a stack-based temporary storage without committing, allowing restoration later. This feature is useful when you need to urgently switch to another branch while working, or when you need to fetch changes from a remote repository but your current work is not ready for a commit. ...

July 26, 2024 · 5 min · 934 words · In-Jun
[email protected]