| 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 reflects the language’s emphasis on simplicity and clarity. Instead of adopting deep package hierarchies like Java or C++ namespace systems, Go separates package paths from package names so code can stay concise without losing meaning. Go’s package conventions do not enforce strict rules for directory structure or architectural patterns. That is a deliberate design choice. The language’s creators, including Rob Pike and Ken Thompson, favored an approach that gives programmers flexibility while still offering clear guidance. You can see this throughout the standard library. In practice, Go’s package conventions center on the following principles. ...

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

GitOps Deployment Strategies Push vs. Pull

GitOps is an operating model that uses Git as the single source of truth for declarative infrastructure and application state, then synchronizes that state to running systems automatically. The term was introduced by Alexis Richardson, CEO of Weaveworks, in 2017 and later gained broad traction in the cloud-native community. By extending familiar Git workflows such as pull requests, code reviews, and branching into operations, GitOps has become a core practice in modern DevOps, especially when paired with declarative platforms like Kubernetes. ...

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

Installing and Configuring OpenSSH Server on Ubuntu

SSH (Secure Shell) is an encrypted network protocol for securely accessing another computer over a network, running commands, and transferring files. Today, OpenSSH is the de facto standard implementation and a core tool for server management. Installing and configuring an SSH server on Ubuntu lets you manage a system remotely, whether it is on a local network or reachable over the internet. This guide walks through the full process, from installing OpenSSH Server to applying basic security settings. ...

August 14, 2024 · 7 min · 1320 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

Roles of the Frontend and Backend in OAuth 2.0

OAuth 2.0 is an authorization framework standardized as RFC 6749 by the IETF (Internet Engineering Task Force) in 2012. It allows users to grant third-party applications limited access to their resources without exposing their credentials (passwords). It is now widely used for social login and API authorization across major services such as 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 · 1510 words · In-Jun

Network Switch Types and Selection

Network switches emerged in the early 1990s to overcome the performance limitations of Ethernet networks. Unlike traditional hubs, which broadcast data to all ports, switches can forward frames selectively based on destination MAC addresses. That capability made them a core component of modern network infrastructure. In the OSI (Open Systems Interconnection) 7-layer model, switches are classified from L1 to L7 according to the layer at which they operate. Each type has distinct characteristics and purposes, analyzing protocol information at its respective layer to process traffic. ...

August 1, 2024 · 9 min · 1816 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 catches potential bugs early. Since GitHub introduced the Pull Request feature in 2008, it has become the standard way to integrate code in both open source projects and enterprise development environments. PR reviews go beyond simply finding errors in code. They are an essential quality management practice 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 · 1911 words · In-Jun

Using Helm in Kubernetes

Helm is a package manager for packaging, deploying, and managing versions of Kubernetes applications. It was first developed by Deis (now Microsoft) in 2015 and joined CNCF (Cloud Native Computing Foundation) in 2018. Today, it is the most widely used deployment tool in the Kubernetes ecosystem. Much like apt or yum on Linux or Homebrew on macOS, Helm bundles complex Kubernetes manifest files into packages called Charts. This lets you install, upgrade, and roll back applications with a single command while simplifying environment-specific configuration management and dependency handling. ...

July 28, 2024 · 7 min · 1352 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 typically use multi-node clusters for high availability, but a single-node cluster is enough for development, testing, and learning. This guide walks through the full process of building a single-node Kubernetes cluster with kubeadm on Ubuntu 24.04 LTS. ...

July 27, 2024 · 6 min · 1114 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]