Blog

random_image
Project Management

What is Vibe Coding?

Vibe Coding is a Must-Have Skill for both "Dev & PM"

What is Vibe Coding [Essential for Dev & PM]

What is Vibe Coding [Essential for Dev & PM]

Vibe Coding is a Must-Have Skill

Whether you're a developer, product manager, or planner, Vibe Coding is quickly becoming an essential skill. It allows teams to collaboratively …

Read more →
random_image
Project Management

[PM] Confluence & Jira

Essential Tools for TPMs [Confluence & Jira]

Tools Every TPM Should Use: Confluence and Jira

Why TPMs need the right tools

Technical Project Managers (TPMs) often find themselves balancing technical conversations with engineers and coordination meetings with stakeholders. To do this smoothly, they need the right tools that help them organize information, …

Read more →
random_image
AI & HCI

RAG (Retrieval-Augmented Gen)

RAG Overview [Boosting LLM Accuracy]

What is RAG (Retrieval-Augmented Generation)?

RAG is an architecture that combines information retrieval with large language models (LLMs) to improve the accuracy, trustworthiness, and relevance of generated outputs. The key takeaway is: RAG enhances LLMs by grounding their responses in real data sources, solving hallucination …

AI

Read more →
random_image
AI & HCI

AI Agents [Beyond Chatbots]

AI Agent 는 ChatBot이랑 어떻게 다를까?

AI Agents, Moving Beyond Traditional Chatbots

AI agents go beyond traditional chatbots by performing autonomous decision-making and task execution. With the rise of frameworks like GPT-4o, AutoGen, and LangGraph, AI agents are becoming real-world tools in development, customer service, and data analysis.

Why AI Agents, …

AI

Read more →
random_image
SW Development

[API] gRPC vs. REST

gRPC vs REST: Which to Choose?

gRPC vs REST: Which to Choose? /title> </head> <body> <h2>To develop internal or external APIs, developers must understand the key differences between gRPC and REST and choose based on their strengths and weaknesses.</h2> <p>In today’s API-driven development environment, choosing the right communication protocol is critical. REST has …</p></body></html></!doctype></p> <i class="fas fa-tags"></i> <a href="/blog/tag/api/"><span class="badge badge-pill badge-light">API</span></a> <br/> <br/> <a class="btn btn-primary" href="/blog/41/">Read more →</a> <div class="card-footer text-muted">Posted on May 21, 2025, 6:57 a.m. by <a ref="#">SANGJIN</a> </div> </div> </div> <!-- Pagination--> <nav aria-label="Pagination"> <hr class="my-0" /> <ul class="pagination justify-content-center my-4"> <li class="page-item"><a class="page-link" href="?page=2">Newer</a></li> <li class="page-item disabled" aria-disabled="true"> <span class="page-link"> Page 3 / 11 </span> </li> <li class="page-item"><a class="page-link" href="?page=4">Older</a></li> </ul> </nav> </div> <div class="col-md-4 col-lg-3"> <!-- <h3>Search</h3> <h4>Categories</h4> --> <!-- Search widget--> <div class="card mb-4"> <div class="card-header">Search</div> <div class="card-body"> <div class="input-group"> <input class="form-control" type="text" placeholder="Enter search term..." aria-label="Enter search term..." id = "search-input" aria-describedby="button-search" /> <button class="btn btn-primary" id="button-search" type="button" onclick="searchPost();">Go!</button> </div> </div> </div> <!-- Categories widget--> <div class="card mb-4" id="categories-card"> <div class="card-header">Categories</div> <div class="card-body"> <div class="row"> <ul class="list-unstyled mb-0"> <li> <a href="/blog/category/sw-development/">SW Development (18)</a> </li> <li> <a href="/blog/category/ai-hci/">AI & HCI (17)</a> </li> <li> <a href="/blog/category/project-management/">Project Management (7)</a> </li> <li> <a href="/blog/category/it-systems-audit/">IT Systems Audit (7)</a> </li> <li> <a href="/blog/category/personal/">Personal (6)</a> </li> <li> <a href="/blog/category/no_category">Unclassified (0)</a> </li> </ul> </div> </div> </div> </div> </div> </div> </div> <script> function searchPost(){ let searchValue = document.getElementById('search-input').value.trim(); if (searchValue.length > 1){ location.href="/blog/search/" + searchValue + "/"; } else{ alert('The search term(' + searchValue +') is too short.'); } }; document.getElementById('search-input').addEventListener('keyup', function(event){ if(event.key === 'Enter'){ searchPost(); } }); </script> <!-- Footer--> <!-- Footer--> <footer class="py-5 bg-dark"> <div class="container"><p class="m-0 text-center text-white">Copyright © 2024. Sangjin All Right Reserved.</p></div> </footer> <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.min.js" integrity="sha384-+sLIOodYLS7CIrQpBjl+C7nPvqq+FbNUBDunl/OZv93DB7Ln/533i8e/mZXLi/P+" crossorigin="anonymous"></script> </body> </html>