| Ko

Web Authentication with Cookies, Sessions, and JWT

Web Authentication is a core mechanism designed to solve the user identification problem arising from the stateless nature of the HTTP protocol. Since Lou Montulli of Netscape Communications invented cookies in 1994, authentication has evolved from session-based to token-based approaches. Modern web applications widely use hybrid methods combining JWT and Refresh Tokens to satisfy both security and scalability requirements. Understanding Authentication and Authorization The Difference Between Authentication and Authorization Authentication is the process of confirming “who you are” by verifying a user’s identity, while Authorization is the process of determining “what you can do” by granting access permissions to specific resources for authenticated users. Authentication must be performed before authorization is possible, and these two concepts should be clearly distinguished. ...

June 2, 2024 · 11 min · 2307 words · In-Jun

Baekjoon 27440 Make it One 3 Solution

Baekjoon 27440 “Make it One 3” is a problem that asks for the minimum number of operations needed to reduce a very large integer up to 10^18 to 1 using three operations (divide by 3, divide by 2, subtract 1). Since the input range reaches 10^18, the standard dynamic programming approach (O(N) time, O(N) space) is infeasible. The problem must be solved efficiently using a recursive recurrence relation and hash map-based memoization, achieving O(log² n) time complexity. ...

May 29, 2024 · 7 min · 1446 words · In-Jun

Adjusting Git Commit Timestamps

Structure of Git Timestamps Git’s timestamp system was designed to record two separate times from when Linus Torvalds designed Git in 2005. This was because in Linux kernel development, the time a patch was written and the time it was actually committed could differ. AuthorDate and CommitDate Git commits have two timestamps. AuthorDate represents when the code was first written, meaning when the original author made the change. It is set via the git commit --date option or the GIT_AUTHOR_DATE environment variable. ...

May 25, 2024 · 5 min · 949 words · In-Jun

Spring Boot Development Best Practices

History and Background of Layered Architecture Layered Architecture is a design pattern established in 1990s enterprise application development to realize the Separation of Concerns principle. It was systematized in Martin Fowler’s “Patterns of Enterprise Application Architecture” (2002). The traditional 3-layer architecture consists of Presentation Layer, Business Logic Layer, and Data Access Layer. Spring Framework has made this structure easily implementable through @Controller, @Service, and @Repository annotations, becoming the de facto standard for Java enterprise development. ...

May 25, 2024 · 6 min · 1208 words · In-Jun

ERD Entity Relationship Diagram

History and Origins of ERD An Entity Relationship Diagram (ERD) is a visual representation of database structure. It shows relationships between database tables and helps make database design and structure easy to understand. Entity-Relationship modeling was developed for database design by Peter Chen and published in a 1976 paper. While serving as an assistant professor at MIT’s Sloan School of Management, he published a groundbreaking paper titled “The Entity-Relationship Model: Toward a Unified View of Data.” The paper was published in ACM’s Transactions on Database Systems and remains relevant today. ...

May 25, 2024 · 13 min · 2680 words · In-Jun

HTTP Methods GET POST PUT DELETE

HTTP (HyperText Transfer Protocol) methods are core elements of client-server communication protocols that have continuously evolved since Tim Berners-Lee first introduced them when designing the World Wide Web in 1991. The HTTP/1.1 standard (RFC 7231) defines 9 standard methods: GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS, CONNECT, and TRACE. Each method has important characteristics of idempotency and safety, playing essential roles in RESTful API design and web application development. History and Evolution of HTTP Methods What is HTTP (HyperText Transfer Protocol)? ...

May 25, 2024 · 13 min · 2710 words · In-Jun

Call by Value vs Call by Reference

Parameter passing mechanisms determine how arguments are passed when calling functions in programming languages. This core concept has been studied since the early programming language design era of the 1960s and continues to directly impact code behavior and performance in modern programming. Call by Value and Call by Reference are the two most fundamental passing methods. Understanding the advantages and disadvantages of each method enables writing more efficient and safer code. ...

May 16, 2024 · 10 min · 2072 words · In-Jun

Getting Started with Spring Boot

History and Background of Spring Framework Spring Framework is a Java-based enterprise application framework first released in 2003, based on ideas Rod Johnson presented in his 2002 book “Expert One-on-One J2EE Design and Development.” It emerged as an alternative to the complex and heavyweight EJB (Enterprise JavaBeans) 2.x at the time, proposing a lightweight development approach based on POJOs (Plain Old Java Objects). EJB 2.x was tightly coupled to containers, making unit testing difficult, required extensive XML configuration, and had low development productivity. Spring addressed these issues by making IoC (Inversion of Control) and DI (Dependency Injection) its core concepts, reducing coupling between objects and improving testability. ...

May 16, 2024 · 6 min · 1170 words · In-Jun

Linux as a Development Operating System

Linux is an open-source operating system that has evolved for over 30 years since Finnish university student Linus Torvalds developed its kernel in 1991. It now runs on over 90% of the world’s servers, Android smartphones, embedded systems, and supercomputers. For developers in particular, it has become the most efficient development platform due to its alignment with server environments, powerful CLI tools, and perfect compatibility with container technologies. History and Philosophy of Linux Evolution from Unix to Linux ...

May 16, 2024 · 8 min · 1523 words · In-Jun

Introduction to Java Programming

Java is an object-oriented programming language developed in 1995 at Sun Microsystems by a team led by James Gosling. Under the slogan “Write Once, Run Anywhere,” it provides a platform-independent execution environment. As of 2024, Java consistently ranks among the top programming languages in the TIOBE index, making it one of the most widely used programming languages in the world. It serves as a core language in various fields including enterprise applications, Android apps, big data processing, and web services. Java continues to evolve based on its strong type system, rich standard library, and active community. ...

May 16, 2024 · 11 min · 2221 words · In-Jun
[email protected]