
주니어 클라이언트의 오답 노트
안녕하세요. 스튜디오 킹덤 클라이언트 개발자 이한나입니다. 이 글은 제가 신입으로 입사하여 3년 차인 지금까지 일하며 실수한 것들을 돌아보고 되새겨 보는 글입니다. 이 글이 저처럼 신입 또는 주니어 클라이언트 개발자분들께 작게나마 도움이 되기를 바라며 저의 경험을 나누고자 합니다.일하다 보면 종종 내가 이해한 것과 기획자가 의도하는 방향이 다른 경우가 생깁니다. 확신이 가지 않는 부분은 당연히 물어봐야 합니다. 설계를 하고 있을 때, 작업을 진행하고 있을 때, 작업을 완료 했을 때까지, 늦었다고 생각할 때가 가장 빠른 질문 타이밍입니다."10번 뽑기 기능"을 만드는 상황을 예시로 들어보겠습니다.여기서 질문을 하지 않는 개발자가 1번 뽑기를 10번 반복하는 것으로 이해하고 (음! 전부 이해했어!) 작업을 진행합니다.그리고 마감날이 되어 테스트를 돌려본 기획자가 물어봅니다.기획자 : 이거 뽑기 10번을 전부 보여주고 있네요? 뽑기는 1번만 보여주고 보상을 10개를 줘야 하는데 다르게 나오는 것 같아요. 확인 부탁드립니다.그동안의 시간과 노력을 지우고 다시 작업을 하는 상황이 되어버렸습니다. 눈물을 머금고 다시 작업을 하고 싶지 않다면 자신이 이해한 것 그리고 작업 방향이 기획자가 의도하는 방향과 맞는지 물어보고, 기록하고, 작업을 진행하도록 합시다.추가로 작업하면서 중간중간 결과물을 영상으로 찍거나 스크린샷으로 캡쳐해 공유합시다. 구현 방향을 공유하는 의미도 있고, 나중에 리팩터링하거나 기능이 추가될 때 원본 기능이 어땠는지 참고하기 좋아서 기록 차원에서라도 남겨두는 게 좋습니다. 그리고 귀여운 작업물을 만들었다면 자랑할 수 있다는 장점도 있습니다.다른 프로그래머의 코드를 수정할 때도 비슷합니다. 코드에는 의도와 맥락이 있습니다. 왜 이런 코드가 있는지 물어보고 의도에 맞는 방향으로 작업해 야 합니다. 그리고 수정 방향에 대해 얘기하다 보면 생각지 못한 더 좋은 코드가 떠오르거나 어딘가에 있는 동일한 코드를 가져다 쓸 수 있음을 알게 될 수 있어서, 어떤 코드에 대해 수정이 고민이 된다면 담당 프로그래머와 얘기해 보는 것이 좋습니다.데이터 수정은 기획자에게 요청하자"쿠키런: 킹덤"에서는 기획자가 퀘스트 내용이나 쿠키의 능력치 같은 게임 데이터를 작업합니다. 적은 양의 데이터 수정일지라도 어떤 데이터는 서로 연결되어 있어 규칙에 맞게 입력해야 하고, 또 그 데이터를 수정하고 번역 요청을 하는 등 관리가 필요합니다. 따라서 데이터 수정은 담당 기획자에게 요청하는 것이 가장 안전합니다. (담당자한테 물어보자는 위 문단의 내용과도 유사합니다.)네트워크 환경이 항상 최선의 상태가 아닐 수 있음을 고려하자예를 들어서, 클라이언트는 서버와 통신을 할 때, 클라이언트가 서버에 보내는 모든 요청이 실패할 수 있음을 고려해야 합니다. 유저의 네트워크 환경이 다양하기 때문입니다. 요청이 실패하면 경우에 따라 유저가 말을 걸어도 NPC 가 반응을 하지 않는 등 의도하지 않게 게임에 갇힐 수 있습니다. 그래서, 요청이 실패했을 때 화면이 어떻게 나와야 하는지, 다
7/20/2025

주니어 클라이언트의 오답 노트
안녕하세요. 스튜디오 킹덤 클라이언트 개발자 이한나입니다. 이 글은 제가 신입으로 입사하여 3년 차인 지금까지 일하며 실수한 것들을 돌아보고 되새겨 보는 글입니다. 이 글이 저처럼 신입 또는 주니어 클라이언트 개발자분들께 작게나마 도움이 되기를 바라며 저의 경험을 나누고자 합니다.일하다 보면 종종 내가 이해한 것과 기획자가 의도하는 방향이 다른 경우가 생깁니다. 확신이 가지 않는 부분은 당연히 물어봐야 합니다. 설계를 하고 있을 때, 작업을 진행하고 있을 때, 작업을 완료 했을 때까지, 늦었다고 생각할 때가 가장 빠른 질문 타이밍입니다."10번 뽑기 기능"을 만드는 상황을 예시로 들어보겠습니다.여기서 질문을 하지 않는 개발자가 1번 뽑기를 10번 반복하는 것으로 이해하고 (음! 전부 이해했어!) 작업을 진행합니다.그리고 마감날이 되어 테스트를 돌려본 기획자가 물어봅니다.기획자 : 이거 뽑기 10번을 전부 보여주고 있네요? 뽑기는 1번만 보여주고 보상을 10개를 줘야 하는데 다르게 나오는 것 같아요. 확인 부탁드립니다.그동안의 시간과 노력을 지우고 다시 작업을 하는 상황이 되어버렸습니다. 눈물을 머금고 다시 작업을 하고 싶지 않다면 자신이 이해한 것 그리고 작업 방향이 기획자가 의도하는 방향과 맞는지 물어보고, 기록하고, 작업을 진행하도록 합시다.추가로 작업하면서 중간중간 결과물을 영상으로 찍거나 스크린샷으로 캡쳐해 공유합시다. 구현 방향을 공유하는 의미도 있고, 나중에 리팩터링하거나 기능이 추가될 때 원본 기능이 어땠는지 참고하기 좋아서 기록 차원에서라도 남겨두는 게 좋습니다. 그리고 귀여운 작업물을 만들었다면 자랑할 수 있다는 장점도 있습니다.다른 프로그래머의 코드를 수정할 때도 비슷합니다. 코드에는 의도와 맥락이 있습니다. 왜 이런 코드가 있는지 물어보고 의도에 맞는 방향으로 작업해 야 합니다. 그리고 수정 방향에 대해 얘기하다 보면 생각지 못한 더 좋은 코드가 떠오르거나 어딘가에 있는 동일한 코드를 가져다 쓸 수 있음을 알게 될 수 있어서, 어떤 코드에 대해 수정이 고민이 된다면 담당 프로그래머와 얘기해 보는 것이 좋습니다.데이터 수정은 기획자에게 요청하자"쿠키런: 킹덤"에서는 기획자가 퀘스트 내용이나 쿠키의 능력치 같은 게임 데이터를 작업합니다. 적은 양의 데이터 수정일지라도 어떤 데이터는 서로 연결되어 있어 규칙에 맞게 입력해야 하고, 또 그 데이터를 수정하고 번역 요청을 하는 등 관리가 필요합니다. 따라서 데이터 수정은 담당 기획자에게 요청하는 것이 가장 안전합니다. (담당자한테 물어보자는 위 문단의 내용과도 유사합니다.)네트워크 환경이 항상 최선의 상태가 아닐 수 있음을 고려하자예를 들어서, 클라이언트는 서버와 통신을 할 때, 클라이언트가 서버에 보내는 모든 요청이 실패할 수 있음을 고려해야 합니다. 유저의 네트워크 환경이 다양하기 때문입니다. 요청이 실패하면 경우에 따라 유저가 말을 걸어도 NPC 가 반응을 하지 않는 등 의도하지 않게 게임에 갇힐 수 있습니다. 그래서, 요청이 실패했을 때 화면이 어떻게 나와야 하는지, 다
2025.07.20

좋아요

별로에요

Data Lineage를 활용한 Data Ontology 출발
Data Ontology 구축을 위한 기획 및 개발 진행 중이며 Engineering 관점에서 초기 데이터 구성 방법에 대해 공유하려고 합니다.Mart 데이터를 대상으로 했으며 여러 방법 중 Data Lineage 생성에 대해 말씀드리겠습니다.Data Ontology의 정의는 "특정 도메인(분야)에 존재하는 개체들, 그 개체들이 속한 개념(클래스), 속성, 그리고 개념 간의 관계들을 형식적이고 명시적으로 정의한 지식 표현 구조"입니다.정의를 정리해보면 도메인을 설명할 수 있는 모든 메타 데이터의 세계로 이해할 수 있습니다.데이터 메타화의 기준은 아래와 같이 표현할 수 있습니다.• None• None ex) '강민우'는 사람이라는 클래스의 인스턴스• None• None ex) A는 B의 자식이다, C는 D의 부분이다• None• None ex) 모든 고양이는 포유류다ETL 과정을 거치는 Mart Data 속성을 반영하여 Data Ontology를 생성을 위해 Data Description, Relationship, Lineage가 필요하다고 판단했으며해당 메타를 조합하여 도메인에 대한 새로운 속성을 생성과 insight를 발굴할 수 있을 것으로 보입니다.Data Lineage의 정의는 "데이터를 생성한 시점부터 소비되는 시점까지의 전체 흐름과 변화를 추적하는 정보"입니다.데이터 계보라고도 하며 정리하면 데이터의 출처, 변환 및 가공 과정, 목적지를 보여주는 데이터 흐름의 이력 추적 체계로 이해할 수 있습니다.Mart 데이터는 사용자가 요청을 위해 수많은 ETL 과정을 거칩니다.이때, 명확한 사용자 요청, ETL 쿼리가 존재한다면 Data Ontology의 속성 및 관계 생성 가능성이 높아집니다.Mart 데이터가 생성되는 과정을 간단한 예시로 표현한 것이며Mart 데이터 결과 값 (명확한 사용자 요청) "고객 서비스 내 주문량", "고객 서비스 접근 경로", ETL 과정에 대한 Data Lineage 만 주어진 상황입니다.• None 1번과 2번 과정을 서로 다른 Mart 데이터 생성 과정이며 결과적으로 서로 고객, 서비스 테이블을 이용한다는 것을 확인할 수 있습니다.• None 공통적으로 Table B, C를 이용한다면 B와 C는 고객과 서비스 중 하나이며 고객, 서비스가 연관되는 Mart 데이터를 생성해야하는 경우 B, C를 이용할 확률이 높다는 것을 알 수 있습니다.• None Table B, C는 1번과 2번 과정에 모두 사용되었기 때문에 주로 함께 사용될 확률이 높다고 할 수 있습니다.• None 1번 과정의 ETL 노드들은 "주문량" 관계로 볼 수 있습니다.• None 2번 과정에서 Table D를 사용했으며 결과에 "접근 경로"가 있는 것으로 보아 D에는 경로에 대한 데이터가 포함되어 있을 확률이 존재하며 D의 속성이 "이용 내역"이 아닌 "사용자 이력"이 될 수도 있습니다.본 데이터를 활용하여 ETL 최적화, 업무 속도, 마케팅 및 AI 사업 향상을 기대할 수 있을 것으로 예상합니다.Data Lineage는 Table, Column 레벨로 나누어집니다.• None 본 블로그에서는 Table Lineage 추출 방법에 대해 다루겠습니다.Data Lineage 생성 도구들 중 JsqlParser, Open Lineage, Apache Atlas 에 대해 설명 드리겠습니다.• None 수 많은 쿼리가 이미 존재• None 누락 없어야하며 Job 재실행 시 영향도 큼• None 활용 방향성에 따라 Data Lineage 추출 및 변환 사항 변경 가능• None 쿼리 수정 후 Lineage 추출을 위해 연관된 모든 Job 실행하는 경우 없어야함위 사항을 고려하여 JsqlParser 사용하는 것으로 결정했으며 Big Data 파싱 가능하도록 추가 로직 생성했습니다.LLM을 활용하여 예시 쿼리를 준비했으며 해당 코드는 Table Level Lineage 추출을 위한 Spark의 Insert Overwrite Table 샘플 코드입니다.해당 코드는 Java 21을 사용했습니다.• None JsqlParser은 쿼리를 AST로 변경하며 쿼리의 세부사항을 모두 담고 있습니다.• None insertStatement에 디버깅했으며 위 이미지는 Insert Overwrite 하위 Select 문에 대한 AST입니다.• None JsqlParser 이용 시 sql을 지원하는 형식으로 변환해야 합니다(MySQL, Oracle, Big Query, Redshift, Snowflake 등).• None Spark 쿼리 파싱 경우 (java 로직 개발로 해결해야 합니다)• None SELECT문보다 FROM문이 먼저 나온 경우 -> WITH문이나 SELECT문 이후로 변경• None ".숫자" 명을 가진 테이블 및 컬럼 경우 -> backtick 추가• None ParseStatement 클래스에서 INSERT문의 target 테이블, InsertStatementParser 클래스에서 WITH문의 target 테이블과 FROM문의 source 테이블을 추출합니다.• None Result는 결과 DTO를 출력한 것이며 쿼리 내 source, target 테이블 리스트입니다.이상으로 Ontology 생성 과정 중 Table Level Lineage 생성 과정에 대해 알아보았습니다.해당 결과를 여러 방향으로 활용할 수 있을 것을 기대합니다.
java
7/14/2025

Data Lineage를 활용한 Data Ontology 출발
Data Ontology 구축을 위한 기획 및 개발 진행 중이며 Engineering 관점에서 초기 데이터 구성 방법에 대해 공유하려고 합니다.Mart 데이터를 대상으로 했으며 여러 방법 중 Data Lineage 생성에 대해 말씀드리겠습니다.Data Ontology의 정의는 "특정 도메인(분야)에 존재하는 개체들, 그 개체들이 속한 개념(클래스), 속성, 그리고 개념 간의 관계들을 형식적이고 명시적으로 정의한 지식 표현 구조"입니다.정의를 정리해보면 도메인을 설명할 수 있는 모든 메타 데이터의 세계로 이해할 수 있습니다.데이터 메타화의 기준은 아래와 같이 표현할 수 있습니다.• None• None ex) '강민우'는 사람이라는 클래스의 인스턴스• None• None ex) A는 B의 자식이다, C는 D의 부분이다• None• None ex) 모든 고양이는 포유류다ETL 과정을 거치는 Mart Data 속성을 반영하여 Data Ontology를 생성을 위해 Data Description, Relationship, Lineage가 필요하다고 판단했으며해당 메타를 조합하여 도메인에 대한 새로운 속성을 생성과 insight를 발굴할 수 있을 것으로 보입니다.Data Lineage의 정의는 "데이터를 생성한 시점부터 소비되는 시점까지의 전체 흐름과 변화를 추적하는 정보"입니다.데이터 계보라고도 하며 정리하면 데이터의 출처, 변환 및 가공 과정, 목적지를 보여주는 데이터 흐름의 이력 추적 체계로 이해할 수 있습니다.Mart 데이터는 사용자가 요청을 위해 수많은 ETL 과정을 거칩니다.이때, 명확한 사용자 요청, ETL 쿼리가 존재한다면 Data Ontology의 속성 및 관계 생성 가능성이 높아집니다.Mart 데이터가 생성되는 과정을 간단한 예시로 표현한 것이며Mart 데이터 결과 값 (명확한 사용자 요청) "고객 서비스 내 주문량", "고객 서비스 접근 경로", ETL 과정에 대한 Data Lineage 만 주어진 상황입니다.• None 1번과 2번 과정을 서로 다른 Mart 데이터 생성 과정이며 결과적으로 서로 고객, 서비스 테이블을 이용한다는 것을 확인할 수 있습니다.• None 공통적으로 Table B, C를 이용한다면 B와 C는 고객과 서비스 중 하나이며 고객, 서비스가 연관되는 Mart 데이터를 생성해야하는 경우 B, C를 이용할 확률이 높다는 것을 알 수 있습니다.• None Table B, C는 1번과 2번 과정에 모두 사용되었기 때문에 주로 함께 사용될 확률이 높다고 할 수 있습니다.• None 1번 과정의 ETL 노드들은 "주문량" 관계로 볼 수 있습니다.• None 2번 과정에서 Table D를 사용했으며 결과에 "접근 경로"가 있는 것으로 보아 D에는 경로에 대한 데이터가 포함되어 있을 확률이 존재하며 D의 속성이 "이용 내역"이 아닌 "사용자 이력"이 될 수도 있습니다.본 데이터를 활용하여 ETL 최적화, 업무 속도, 마케팅 및 AI 사업 향상을 기대할 수 있을 것으로 예상합니다.Data Lineage는 Table, Column 레벨로 나누어집니다.• None 본 블로그에서는 Table Lineage 추출 방법에 대해 다루겠습니다.Data Lineage 생성 도구들 중 JsqlParser, Open Lineage, Apache Atlas 에 대해 설명 드리겠습니다.• None 수 많은 쿼리가 이미 존재• None 누락 없어야하며 Job 재실행 시 영향도 큼• None 활용 방향성에 따라 Data Lineage 추출 및 변환 사항 변경 가능• None 쿼리 수정 후 Lineage 추출을 위해 연관된 모든 Job 실행하는 경우 없어야함위 사항을 고려하여 JsqlParser 사용하는 것으로 결정했으며 Big Data 파싱 가능하도록 추가 로직 생성했습니다.LLM을 활용하여 예시 쿼리를 준비했으며 해당 코드는 Table Level Lineage 추출을 위한 Spark의 Insert Overwrite Table 샘플 코드입니다.해당 코드는 Java 21을 사용했습니다.• None JsqlParser은 쿼리를 AST로 변경하며 쿼리의 세부사항을 모두 담고 있습니다.• None insertStatement에 디버깅했으며 위 이미지는 Insert Overwrite 하위 Select 문에 대한 AST입니다.• None JsqlParser 이용 시 sql을 지원하는 형식으로 변환해야 합니다(MySQL, Oracle, Big Query, Redshift, Snowflake 등).• None Spark 쿼리 파싱 경우 (java 로직 개발로 해결해야 합니다)• None SELECT문보다 FROM문이 먼저 나온 경우 -> WITH문이나 SELECT문 이후로 변경• None ".숫자" 명을 가진 테이블 및 컬럼 경우 -> backtick 추가• None ParseStatement 클래스에서 INSERT문의 target 테이블, InsertStatementParser 클래스에서 WITH문의 target 테이블과 FROM문의 source 테이블을 추출합니다.• None Result는 결과 DTO를 출력한 것이며 쿼리 내 source, target 테이블 리스트입니다.이상으로 Ontology 생성 과정 중 Table Level Lineage 생성 과정에 대해 알아보았습니다.해당 결과를 여러 방향으로 활용할 수 있을 것을 기대합니다.
2025.07.14
java

좋아요

별로에요

차세대 반도체 기술의 핵심으로 떠오르고 있는 PIM(Processing In Memory)은 무엇일까?
**Processing-In-Memory(PIM)**은 메모리 내부에 연산 기능(프로세싱 기능)을 탑재하여, 데이터를 이동시키지 않고 메모리 안에서 직접 처리하는 기술입니다.즉, CPU나 GPU가 아닌 메모리 자체가 연산을 수행함으로써, 데이터 이동을 줄이고 처리 속도를 극대화하는 혁신적인 반도체 아키텍처입니다.여기서 먼저 알아야 할 내용이 바로지금까지 대부분의 컴퓨터는 폰 노이만 구조라는 구조를 사용해 왔습니다.이 구조는 프로세서(CPU)와 메모리(DRAM)가 분리되어 있고, 데이터는 메모리에서 CPU로 오가며 처리되는 구조입니다.이런 구조에서는 데이터가 증가할 때 큰 세가지 문제가 발생 할 수 있습니다.• None 병목 현상: 데이터를 메모리에서 CPU로 가져오는 데 시간이 증가• None 전력 소모: 데이터 이동에 많은 전력 소모• None 속도 제한: 연산보다 데이터 전송 속도 저하로 전체 시스템 속도 제약위와 같은 폰 노이만 구조는 요즘 같은 인공지능, 빅데이터 분석, 머신러닝 등 데이터를 실시간으로 많이 처리 해야하는 상황에서 심각한 성능 저하와 전력 소모가 발생하게 됩니다.이러한 문제를 해결하기 위해 PIM 반도체가 등장합니다.PIM은 말 그대로 메모리 내부에서 연산을 수행한다(Processing In Memory)는 개념입니다.기존에는 기존에는 메모리는 데이터를 저장하는 역할만 하고, 연산은 CPU가 담당했습니다.하지만 PIM은 메모리 칩 내부에 연산 기능을 통합하여, 데이터를 CPU로 보내지 않고도 메모리 자체에서 직접 계산을 수행할 수 있도록 작동하는 반도체입니다.PIM은 구현 방식은 크게 두 가지 방식으로 나눌 수 있습니다.• None 기존 메모리 칩 내부에 간단한 연산 유닛(ALU: Arithmetic Logic Unit)을 추가하는 방식입니다. DRAM과 같은 범용 메모리 칩에 작은 프로세서를 넣어 데이터를 읽고 쓰는 과정에서 간단한 연산을 수행합니다.*ALU(산술 논리 연산 장치, Arithmetic Logic Unit)는 컴퓨터나 반도체 시스템에서 덧셈, 뺄셈 같은 산술 연산과 AND, OR 같은 논리 연산을 수행하는 부품연산 로직을 메모리 셀 자체에 통합(In-Memory Computing):• None 더 나아가 메모리 셀 자체의 물리적 특성을 활용하여 연산을 수행하는 방식입니다. 예를 들어, 저항성 메모리(ReRAM)나 상변화 메모리(PRAM)와 같은 차세대 비휘발성 메모리(NVM)는 데이터를 저장하는 동시에 논리 연산을 수행할 수 있는 잠재력을 가지고 있습니다. 이 기술이 최종 PIM의 지향점이라고 할 수 있습니다.삼성전자, SK하이닉스와 같은 기업들도 HBM-PIM, GDDR6-AIM 등 독자적인 PIM 솔루션을 선보이며 기술을 선도하고 있습니다.또한 PIM은 메모리나 프로세서의 성능 개선과 컴퓨터 아키텍처의 근본적인 변화를 가져올 수 있습니다.
7/14/2025

차세대 반도체 기술의 핵심으로 떠오르고 있는 PIM(Processing In Memory)은 무엇일까?
**Processing-In-Memory(PIM)**은 메모리 내부에 연산 기능(프로세싱 기능)을 탑재하여, 데이터를 이동시키지 않고 메모리 안에서 직접 처리하는 기술입니다.즉, CPU나 GPU가 아닌 메모리 자체가 연산을 수행함으로써, 데이터 이동을 줄이고 처리 속도를 극대화하는 혁신적인 반도체 아키텍처입니다.여기서 먼저 알아야 할 내용이 바로지금까지 대부분의 컴퓨터는 폰 노이만 구조라는 구조를 사용해 왔습니다.이 구조는 프로세서(CPU)와 메모리(DRAM)가 분리되어 있고, 데이터는 메모리에서 CPU로 오가며 처리되는 구조입니다.이런 구조에서는 데이터가 증가할 때 큰 세가지 문제가 발생 할 수 있습니다.• None 병목 현상: 데이터를 메모리에서 CPU로 가져오는 데 시간이 증가• None 전력 소모: 데이터 이동에 많은 전력 소모• None 속도 제한: 연산보다 데이터 전송 속도 저하로 전체 시스템 속도 제약위와 같은 폰 노이만 구조는 요즘 같은 인공지능, 빅데이터 분석, 머신러닝 등 데이터를 실시간으로 많이 처리 해야하는 상황에서 심각한 성능 저하와 전력 소모가 발생하게 됩니다.이러한 문제를 해결하기 위해 PIM 반도체가 등장합니다.PIM은 말 그대로 메모리 내부에서 연산을 수행한다(Processing In Memory)는 개념입니다.기존에는 기존에는 메모리는 데이터를 저장하는 역할만 하고, 연산은 CPU가 담당했습니다.하지만 PIM은 메모리 칩 내부에 연산 기능을 통합하여, 데이터를 CPU로 보내지 않고도 메모리 자체에서 직접 계산을 수행할 수 있도록 작동하는 반도체입니다.PIM은 구현 방식은 크게 두 가지 방식으로 나눌 수 있습니다.• None 기존 메모리 칩 내부에 간단한 연산 유닛(ALU: Arithmetic Logic Unit)을 추가하는 방식입니다. DRAM과 같은 범용 메모리 칩에 작은 프로세서를 넣어 데이터를 읽고 쓰는 과정에서 간단한 연산을 수행합니다.*ALU(산술 논리 연산 장치, Arithmetic Logic Unit)는 컴퓨터나 반도체 시스템에서 덧셈, 뺄셈 같은 산술 연산과 AND, OR 같은 논리 연산을 수행하는 부품연산 로직을 메모리 셀 자체에 통합(In-Memory Computing):• None 더 나아가 메모리 셀 자체의 물리적 특성을 활용하여 연산을 수행하는 방식입니다. 예를 들어, 저항성 메모리(ReRAM)나 상변화 메모리(PRAM)와 같은 차세대 비휘발성 메모리(NVM)는 데이터를 저장하는 동시에 논리 연산을 수행할 수 있는 잠재력을 가지고 있습니다. 이 기술이 최종 PIM의 지향점이라고 할 수 있습니다.삼성전자, SK하이닉스와 같은 기업들도 HBM-PIM, GDDR6-AIM 등 독자적인 PIM 솔루션을 선보이며 기술을 선도하고 있습니다.또한 PIM은 메모리나 프로세서의 성능 개선과 컴퓨터 아키텍처의 근본적인 변화를 가져올 수 있습니다.
2025.07.14

좋아요

별로에요

실패도 빠르게! 100개 배너 10초컷 테스트 자동화 구현기
안녕하세요. 29CM QA팀 Lead 박현준입니다.팀 내에서는 주로 테스트 자동화 환경과 프레임워크 개선의 업무를 주로 수행하고 있으며 팀원들의 자동화 업무와 엔지니어링 업무를 돕고 있습니다.전 인원이 QA Engineer로 구성된 팀이기 때문에 팀 내에서 기술교류가 활발하고 다양한 시도가 진행되고 있습니다 :)이번 내용은 기존에 구현되어 있지 않았지만 요청에 의해 테스트 자동화가 구현된 과정에 대한 이야기입니다.QA팀에 테스트 자동화 구현 요청이 오다.29CM 애플리케이션의 홈 화면은 카테고리별로 여러 개의 탭으로 구성되며, 각 탭에는 다양한 배너가 노출됩니다.이 배너들은 이벤트, 특가 상품, 기획전을 안내하는 중요한 기능을 담당하고 있습니다. 그래서 전략적으로 운영되어 수시로 변경, 추가가 이루어지며 운영되고 있는데, 이러한 배너는 평균적으로 100여 개 정도 노출되고 있고 많은 경우는 총 150여 개 정도까지 노출되기도 합니다.이렇게 배너에 사용할 수 있는 기능과 양이 많아짐으로써 자연스럽게 나타나는 현상이 있었습니다. 바로 휴먼에러(Human Error)입니다.사용자가 많아지고 배너 종류도 많아짐에 따라 관리 비용이 증가하게 되면서 휴먼에러의 발생 가능성도 높아졌습니다. 이러한 부분을 해소하고자 해당 배너를 관리하고 운영하는 조직에서 전문가 조직을 찾아오시게 됩니다.바로 QA팀 이죠 자동화 구축을 위한 사전 커뮤니케이션 진행 하기.29CM QA팀은 애플리케이션 및 API 테스트 자동화를 적극적으로 활용하여 운영 환경의 기능을 주기적으로 점검합니다. 하지만 배너는 테스트 자동화 대상에서 제외되어 있었는데, 여기에는 두 가지 이유가 있습니다.첫 번째는 배너의 수가 너무 많아 기존 애플리케이션 자동화 방식으로는 효율성이 떨어진다는 것입니다. 그리고 두 번째로는 자동으로 전환(Rolling) 되는 특성상 특정 배너를 제어하고 결과를 확인하기가 어렵다는 것이었습니다.따라서 새로운 접근 방식이 필요했고, 정확한 요구사항을 파악하기 위해 유관 부서와 논의를 진행했습니다. 그 결과, 자동화의 목표는 다음 세 가지로 정의되었습니다.홈배너의 Target Link로 이동했을 때 정상 이동되는지 확인한다.이동한 화면에 요소들이 잘 나오는지 확인한다.운영중인 모든 배너 Link를 검증 대상에 포함 한다.이렇게 구현할 항목이 정해졌고 QA팀은 작업에 착수하게 됩니다.MVP 버전 제작 하기.배너의 Target Link는 API 응답을 통해 쉽게 확보할 수 있었지만, 링크 이동 후 콘텐츠가 정상적으로 노출되는지 확인하는 과정은 UI(사용자 인터페이스)를 통해 검증해야 했습니다.사실 이 부분은 커뮤니케이션 미스였습니다. 밑에서 확인하실 수 있습니다.하지만 화면을 자주 이동해야 하기 때문에 Selenium보다 WEB에서의 수행 속도가 더 빠른 Playwright를 사용하여 WEB + Playwright의 조합으로 결정합니다.MVP의 자동화 로직은 다음과 같이 5단계로 설계했습니다.API로 받아온 Target Link를 List로 만들고 순차적으로 해당 링크에 이동하도록 합니다.링크 이동 후에는 화면을 하단으로 스크롤 하며 현재 화면에 있는 상품 이미지의 element 값을 수집합니다.수집된 element에 .click()을 바로 수행하지 않고 새 탭을 오픈합니다.오픈된 탭에서 수집된 element의 .click() 동작이 수행되도록 합니다.새 탭에서 상품 상세화면 이동을 검증하고 PASS일 경우 탭을 닫습니다.이렇게 Target Link내에 상품 이미지 Link가 모두 확인되면, 다음 Target Link 에서 테스트가 수행되도록 구성하였습니다.3번에서 페이지 내에서 직접 이동(.click()) 하지 않고 새 탭을 활용한 데에는 두 가지 이유가 있었습니다.1️ 첫번째. 페이지 이동 후 뒤로 가기 로 원래 페이지에 복귀하면 스크롤 위치가 초기화됩니다. 이 경우 다음 항목을 검증하기 위해 불필요한 스크롤을 다시 수행해야 합니다. 새 탭 방식은 기존 페이지의 상태를 그대로 유지하므로 테스트 흐름이 끊기지 않습니다.2️ 두번째. 뒤로 가기 로 이전 페이지로 이동하면 해당 페이지를 다시 로딩해야 하기때문에 시간이 추가로 소요됩니다. 반면, 필요한 페이지만 새 탭으로 열고 닫는 방식이라면 상품을 검증할 때마다 기존 페이지를 반복적으로 로딩하는 과정이 없기때문에 전체적인 검증 속도 면에서 훨씬 유리합니다.새 탭을 비동기적으로 열어 링크를 검증하는 과정에서 간혹 타이밍 문제가 발생했지만, 최적의 시간대를 찾는 것은 어렵지 않았습니다.이렇게 MVP 버전을 만들고 나서 지금 만들어진 것이 요청해 주신 그 자동화의 구성이 맞는지 확인하기 위해 바로 유관부서 분들을 찾아갔습니다.하지만 돌아온 대답은 저를 당황하게 했습니다.요청을 주신 건 이런 UI 자동화가 아니었다는 말이었거든요.이 이게 아니라구요?커뮤니케이션이 이렇게 중요합니다.빠르게 시연을 한 덕분에 방향이 잘못되었다는 것을 알고 다시 디테일한 사항을 다시 논의하게 됩니다.홈 배너의 Target Link로 이동했을 때 정상 이동되는지 확인한다. (문제가 발생한다면 잘못 입력된 Link에 의한 접근 불가이므로 이동의 가/불 여부만 체크된다면 충분하다.)운영 중인 모든 배너 Link를 검증 대상으로 한다.해당 논의 내용을 토대로 구현 방법을 다시 찾게 됩니다.하지만 이제는 UI 자동화로는 구현하지 않기로 합니다.앞서 MVP 버전을 만들 때 상품 링크 1개를 검증하는 데 약 1초가 소요되었습니다. 배너 하나에 포함된 상품이 30개, 전체 배너가 100개라고 가정하면, 모든 링크를 검증하는 데 최소 3,000초, 즉 50분이라는 긴 시간이 필요했습니다. 이는 빠른 검증 이라는 저희의 목표와는 거리가 멀었습니다.이렇게 시간이 오래 걸리기 때문에 초기 계획은 일단 시간을 투자하여 모든 배너를 전수 테스트하고, 테스트 당시의 배너 데이터를 가지고 있으면서 시간별로 추가되는 배너에 한해서 추가 테스트를 수행하려고 했었습니다.하지만 이제 상품까지 이동되는 과정을 검증하지 않는 것으로 하였기에 URL의 유효성만 확인하면 되는 것이었습니다. 그래서 UI로 진행할 이유가 없고 더
slack
7/13/2025

실패도 빠르게! 100개 배너 10초컷 테스트 자동화 구현기
안녕하세요. 29CM QA팀 Lead 박현준입니다.팀 내에서는 주로 테스트 자동화 환경과 프레임워크 개선의 업무를 주로 수행하고 있으며 팀원들의 자동화 업무와 엔지니어링 업무를 돕고 있습니다.전 인원이 QA Engineer로 구성된 팀이기 때문에 팀 내에서 기술교류가 활발하고 다양한 시도가 진행되고 있습니다 :)이번 내용은 기존에 구현되어 있지 않았지만 요청에 의해 테스트 자동화가 구현된 과정에 대한 이야기입니다.QA팀에 테스트 자동화 구현 요청이 오다.29CM 애플리케이션의 홈 화면은 카테고리별로 여러 개의 탭으로 구성되며, 각 탭에는 다양한 배너가 노출됩니다.이 배너들은 이벤트, 특가 상품, 기획전을 안내하는 중요한 기능을 담당하고 있습니다. 그래서 전략적으로 운영되어 수시로 변경, 추가가 이루어지며 운영되고 있는데, 이러한 배너는 평균적으로 100여 개 정도 노출되고 있고 많은 경우는 총 150여 개 정도까지 노출되기도 합니다.이렇게 배너에 사용할 수 있는 기능과 양이 많아짐으로써 자연스럽게 나타나는 현상이 있었습니다. 바로 휴먼에러(Human Error)입니다.사용자가 많아지고 배너 종류도 많아짐에 따라 관리 비용이 증가하게 되면서 휴먼에러의 발생 가능성도 높아졌습니다. 이러한 부분을 해소하고자 해당 배너를 관리하고 운영하는 조직에서 전문가 조직을 찾아오시게 됩니다.바로 QA팀 이죠 자동화 구축을 위한 사전 커뮤니케이션 진행 하기.29CM QA팀은 애플리케이션 및 API 테스트 자동화를 적극적으로 활용하여 운영 환경의 기능을 주기적으로 점검합니다. 하지만 배너는 테스트 자동화 대상에서 제외되어 있었는데, 여기에는 두 가지 이유가 있습니다.첫 번째는 배너의 수가 너무 많아 기존 애플리케이션 자동화 방식으로는 효율성이 떨어진다는 것입니다. 그리고 두 번째로는 자동으로 전환(Rolling) 되는 특성상 특정 배너를 제어하고 결과를 확인하기가 어렵다는 것이었습니다.따라서 새로운 접근 방식이 필요했고, 정확한 요구사항을 파악하기 위해 유관 부서와 논의를 진행했습니다. 그 결과, 자동화의 목표는 다음 세 가지로 정의되었습니다.홈배너의 Target Link로 이동했을 때 정상 이동되는지 확인한다.이동한 화면에 요소들이 잘 나오는지 확인한다.운영중인 모든 배너 Link를 검증 대상에 포함 한다.이렇게 구현할 항목이 정해졌고 QA팀은 작업에 착수하게 됩니다.MVP 버전 제작 하기.배너의 Target Link는 API 응답을 통해 쉽게 확보할 수 있었지만, 링크 이동 후 콘텐츠가 정상적으로 노출되는지 확인하는 과정은 UI(사용자 인터페이스)를 통해 검증해야 했습니다.사실 이 부분은 커뮤니케이션 미스였습니다. 밑에서 확인하실 수 있습니다.하지만 화면을 자주 이동해야 하기 때문에 Selenium보다 WEB에서의 수행 속도가 더 빠른 Playwright를 사용하여 WEB + Playwright의 조합으로 결정합니다.MVP의 자동화 로직은 다음과 같이 5단계로 설계했습니다.API로 받아온 Target Link를 List로 만들고 순차적으로 해당 링크에 이동하도록 합니다.링크 이동 후에는 화면을 하단으로 스크롤 하며 현재 화면에 있는 상품 이미지의 element 값을 수집합니다.수집된 element에 .click()을 바로 수행하지 않고 새 탭을 오픈합니다.오픈된 탭에서 수집된 element의 .click() 동작이 수행되도록 합니다.새 탭에서 상품 상세화면 이동을 검증하고 PASS일 경우 탭을 닫습니다.이렇게 Target Link내에 상품 이미지 Link가 모두 확인되면, 다음 Target Link 에서 테스트가 수행되도록 구성하였습니다.3번에서 페이지 내에서 직접 이동(.click()) 하지 않고 새 탭을 활용한 데에는 두 가지 이유가 있었습니다.1️ 첫번째. 페이지 이동 후 뒤로 가기 로 원래 페이지에 복귀하면 스크롤 위치가 초기화됩니다. 이 경우 다음 항목을 검증하기 위해 불필요한 스크롤을 다시 수행해야 합니다. 새 탭 방식은 기존 페이지의 상태를 그대로 유지하므로 테스트 흐름이 끊기지 않습니다.2️ 두번째. 뒤로 가기 로 이전 페이지로 이동하면 해당 페이지를 다시 로딩해야 하기때문에 시간이 추가로 소요됩니다. 반면, 필요한 페이지만 새 탭으로 열고 닫는 방식이라면 상품을 검증할 때마다 기존 페이지를 반복적으로 로딩하는 과정이 없기때문에 전체적인 검증 속도 면에서 훨씬 유리합니다.새 탭을 비동기적으로 열어 링크를 검증하는 과정에서 간혹 타이밍 문제가 발생했지만, 최적의 시간대를 찾는 것은 어렵지 않았습니다.이렇게 MVP 버전을 만들고 나서 지금 만들어진 것이 요청해 주신 그 자동화의 구성이 맞는지 확인하기 위해 바로 유관부서 분들을 찾아갔습니다.하지만 돌아온 대답은 저를 당황하게 했습니다.요청을 주신 건 이런 UI 자동화가 아니었다는 말이었거든요.이 이게 아니라구요?커뮤니케이션이 이렇게 중요합니다.빠르게 시연을 한 덕분에 방향이 잘못되었다는 것을 알고 다시 디테일한 사항을 다시 논의하게 됩니다.홈 배너의 Target Link로 이동했을 때 정상 이동되는지 확인한다. (문제가 발생한다면 잘못 입력된 Link에 의한 접근 불가이므로 이동의 가/불 여부만 체크된다면 충분하다.)운영 중인 모든 배너 Link를 검증 대상으로 한다.해당 논의 내용을 토대로 구현 방법을 다시 찾게 됩니다.하지만 이제는 UI 자동화로는 구현하지 않기로 합니다.앞서 MVP 버전을 만들 때 상품 링크 1개를 검증하는 데 약 1초가 소요되었습니다. 배너 하나에 포함된 상품이 30개, 전체 배너가 100개라고 가정하면, 모든 링크를 검증하는 데 최소 3,000초, 즉 50분이라는 긴 시간이 필요했습니다. 이는 빠른 검증 이라는 저희의 목표와는 거리가 멀었습니다.이렇게 시간이 오래 걸리기 때문에 초기 계획은 일단 시간을 투자하여 모든 배너를 전수 테스트하고, 테스트 당시의 배너 데이터를 가지고 있으면서 시간별로 추가되는 배너에 한해서 추가 테스트를 수행하려고 했었습니다.하지만 이제 상품까지 이동되는 과정을 검증하지 않는 것으로 하였기에 URL의 유효성만 확인하면 되는 것이었습니다. 그래서 UI로 진행할 이유가 없고 더
2025.07.13
slack

좋아요

별로에요

슬기로운 토스뱅크 개발 인턴 생활
안녕하세요, 토스뱅크 Loan Tech Platform 팀에서 백엔드 개발 인턴으로 근무하고 있는 이경민, 문홍윤입니다.벌써 토스뱅크에 인턴으로 입사한 지 3개월이 지났습니다. 그동안 경험했던 토스뱅크의 개발 문화와 각자 진행한 프로젝트를 소개하고, 그 과정에서 느꼈던 고민과 배움들을 이 글에 정리해보려 해요.저희는 ‘금융’이라는 다소 낯선 도메인 위에서, 빠르게 움직이는 팀의 일원으로 각자의 역할과 프로젝트를 수행하며 조금씩 성장해 나갈 수 있었습니다. 처음 접하는 기술과 환경 속에서 어려움도 있었지만, 그 모든 순간이 저희에겐 좋은 자극이 되었고, 앞으로 어떤 개발자가 되고 싶은지 진지하게 고민할 수 있는 계기가 되었어요.그 결과, 인턴 최초로 서버 챕터 발표 무대에 설 수 있었던 특별한 경험까지 할 수 있었고, 이 과정에서 배운 것들을 기록으로 남기고자 합니다. 이 글이 토스에 관심 있는 분들이나 인턴십을 고민 중이신 분들께 조금이나마 도움이 되길 바랍니다.저희가 속한 Loan Tech Platform Team은 대출 도메인의 시스템을 효율적인 구조로 재설계하여 개발 생산성을 올리는 팀입니다.저는 “비효율적인 요소를 발굴 및 제거합니다”라는 팀의 목표에 맞게 플러그인을 개발했습니다.처음 은행 도메인을 접하면서 가장 어려웠던 점은 변수명을 보고도 무슨 의미인지 직관적으로 이해하기 어려운 경우가 많다는 점이었어요. 특히 도메인 특성상 복잡한 개념을 다루다 보니, 변수명은 길어지고, 사용하는 단어들도 낯설었죠.• None 같은 단어는 한눈에 파악하기 어려움또한 새로운 변수명을 만들 때 어떤 표현이 더 자연스러운지, 또 기존에 사용된 변수명이 있는지를 확인하고 중복되거나 어색한 이름을 피하는 것이 쉽지 않았어요.• None 이자계산 같은 단어도 → / 등 다양한 표현 중 어떤것을 사용하는지를 파악하기 어려움IDE에서 드래그 하고 단축키를 누르기만 하면 됩니다.기본적으로 DB에는 단어별로 뜻이 저장되어 있습니다. ex) 원금→principle, 상환→repayment하지만 보통 검색하는 단어는 합성단어인 경우이기 때문에 단어를 자동으로 분리하는 기능이 필요해요.• None NLP(OpenKoreanTextProcessorJava)를 사용해서 합성 단어를 단어로 분리해서 DB를 조회합니다• None 보통 변수명은 CamelCase(단어가 합쳐진 부분마다 맨 처음 글자를 대문자로 표기)로 만들어져 있기 때문에 대문자를 기준으로 단어를 분리해서 단어를 조회합니다.하지만 검색한 단어가 DB에 없을수도, 오타로 인해 원하는 단어를 검색 못할 가능성도 있습니다. 이럴 경우를 대비하여 새로운 단어의 추천, 오타 검증을 토스뱅크 내부에서 자체 구축된 LLM를 통해 지원했습니다.• None 검색한 단어들 중 DB에 존재하는 단어는 지원합니다.• None DB에 없는 단어는 앞뒤 문맥을 통해 LLM이 단어를 추천합니다.이처럼 똑같은 단어를 번역해도 앞 뒤 문맥을 보고 문맥상 더 적합한 단어를 추천해요.• None 오타는 앞 뒤 문맥을 보고 조정 후 단어를 검
java
kotlin
7/13/2025

슬기로운 토스뱅크 개발 인턴 생활
안녕하세요, 토스뱅크 Loan Tech Platform 팀에서 백엔드 개발 인턴으로 근무하고 있는 이경민, 문홍윤입니다.벌써 토스뱅크에 인턴으로 입사한 지 3개월이 지났습니다. 그동안 경험했던 토스뱅크의 개발 문화와 각자 진행한 프로젝트를 소개하고, 그 과정에서 느꼈던 고민과 배움들을 이 글에 정리해보려 해요.저희는 ‘금융’이라는 다소 낯선 도메인 위에서, 빠르게 움직이는 팀의 일원으로 각자의 역할과 프로젝트를 수행하며 조금씩 성장해 나갈 수 있었습니다. 처음 접하는 기술과 환경 속에서 어려움도 있었지만, 그 모든 순간이 저희에겐 좋은 자극이 되었고, 앞으로 어떤 개발자가 되고 싶은지 진지하게 고민할 수 있는 계기가 되었어요.그 결과, 인턴 최초로 서버 챕터 발표 무대에 설 수 있었던 특별한 경험까지 할 수 있었고, 이 과정에서 배운 것들을 기록으로 남기고자 합니다. 이 글이 토스에 관심 있는 분들이나 인턴십을 고민 중이신 분들께 조금이나마 도움이 되길 바랍니다.저희가 속한 Loan Tech Platform Team은 대출 도메인의 시스템을 효율적인 구조로 재설계하여 개발 생산성을 올리는 팀입니다.저는 “비효율적인 요소를 발굴 및 제거합니다”라는 팀의 목표에 맞게 플러그인을 개발했습니다.처음 은행 도메인을 접하면서 가장 어려웠던 점은 변수명을 보고도 무슨 의미인지 직관적으로 이해하기 어려운 경우가 많다는 점이었어요. 특히 도메인 특성상 복잡한 개념을 다루다 보니, 변수명은 길어지고, 사용하는 단어들도 낯설었죠.• None 같은 단어는 한눈에 파악하기 어려움또한 새로운 변수명을 만들 때 어떤 표현이 더 자연스러운지, 또 기존에 사용된 변수명이 있는지를 확인하고 중복되거나 어색한 이름을 피하는 것이 쉽지 않았어요.• None 이자계산 같은 단어도 → / 등 다양한 표현 중 어떤것을 사용하는지를 파악하기 어려움IDE에서 드래그 하고 단축키를 누르기만 하면 됩니다.기본적으로 DB에는 단어별로 뜻이 저장되어 있습니다. ex) 원금→principle, 상환→repayment하지만 보통 검색하는 단어는 합성단어인 경우이기 때문에 단어를 자동으로 분리하는 기능이 필요해요.• None NLP(OpenKoreanTextProcessorJava)를 사용해서 합성 단어를 단어로 분리해서 DB를 조회합니다• None 보통 변수명은 CamelCase(단어가 합쳐진 부분마다 맨 처음 글자를 대문자로 표기)로 만들어져 있기 때문에 대문자를 기준으로 단어를 분리해서 단어를 조회합니다.하지만 검색한 단어가 DB에 없을수도, 오타로 인해 원하는 단어를 검색 못할 가능성도 있습니다. 이럴 경우를 대비하여 새로운 단어의 추천, 오타 검증을 토스뱅크 내부에서 자체 구축된 LLM를 통해 지원했습니다.• None 검색한 단어들 중 DB에 존재하는 단어는 지원합니다.• None DB에 없는 단어는 앞뒤 문맥을 통해 LLM이 단어를 추천합니다.이처럼 똑같은 단어를 번역해도 앞 뒤 문맥을 보고 문맥상 더 적합한 단어를 추천해요.• None 오타는 앞 뒤 문맥을 보고 조정 후 단어를 검
2025.07.13
java
kotlin

좋아요

별로에요

2025 하반기 NEW! 기술 세미나 & 컨퍼런스 일정 정리! (ver.250713)
안녕하세요 SK플래닛 DevRel 담당자입니다. 여러 곳에서 열리는 국내외 기술 세미나 & 컨퍼런스 주요 정보를 한 곳에 정리해 보았습니다. 저희 업무에도 활용할 겸 최신 정보를 정리하면서, 개발자 여러분들도 함께 참고하실 수 있도록 현재까지 공개된 주요 기술 행사 일정들을 공유드리오니 참고하시기 바랍니다.• 7월: TOSS MAKERS CONFERENCE 25 | Google I/O Extended Incheon 2025 | 한빛미디어 북토크('코드 너머' DevRel 세미나) | OKKY 7월 세미나: '개발자의 문장력'• 한줄설명: 올해 'Every Maker, Every Tech' 라는 주제로, 토스에서 프로덕트/디자인/개발 '통합' 컨퍼런스를 3일간 진행합니다 - 종전에는 SLASH(개발), Simplicity(디자인) 등으로 나누어 진행.• 참가자 신청: 7월 13일(일)까지 접수를 받습니다(무료, 추첨 후 7/16 결과발표) => https://toss.im/tmc-25• 참고사항(7/13 기준): 날짜별 주제가 상이하며, 편의를 위해 한 날짜만 신청 가능합니다.(예: Day3 - Engineering Day)• 한줄설명: Google I/O 현재 참관기 등 5개 트랙, 총 27개 세션 + Hands-on 워크숍 - Google 개발 생태계의 최신 기술과 현장의 목소리를 인천에서 만나세요!• 한줄설명: 삼성전자, 우아한형제들, SKT, 카카오페이, (전)토스 DevRel 실무자의 생생한 이야기를 소개합니다!• 참고사항: '코드 너머, 회사보다 오래 남을 개발자' 도서 출간 기념 북토크 행사입니다.• 한줄설명: 제목이 설명 그대로를 말해줍니다 : )• 참고사항(7/13 기준): CJ올리브영 DevRel Specialist 최가인 님께서 발표해 주십니다.• 한줄설명: 국내 최대 파이썬 컨퍼런스로 AI개발부터 파이썬 사용기까지 다양한 발표를 진행합니다(올해 주제: 'Weave with Python').• 참가자 신청: 7/13 현재 접수중(유료), 튜토리얼 티켓 판매(7/7-8/1), 일반 참가자/개인 후원자 티켓 판매(6/15-8/17, 소진시까지)• 기타: 파이콘 한국은 커뮤니티 주관으로 이루어지는 비영리 개발자 대상 행사로, 오픈 소스인 파이썬의 저변 확대 및 커뮤니티의 활성화를 목표로 합니다.• 한줄설명: FEConf는 국내외 프론트엔드 개발자들이 한자리에 모여 경험을 나누고, 기술의 흐름을 함께 만들어 가는 행사입니다(국내 최대 프론트엔드 개발자 행사).• 기타: 7/13 현재 위 링크를 통해 스피커(연사) 및 라이트닝 톡 발표자 모집을 받고 있습니다(후원사도...).(참고) 아쉽게도 매년 8월 열렸던 인프콘은, 올해는 열리지 않는다고 합니다(내년에...).• 한줄설명: KWDC(Koreawide Developer Conference) 주관 한국 애플 생태계 컨퍼런스(개발자, 기획자, 디자이너를 모두 아우르는 행사)• 한줄설명: 국내 최대 블록체인 행사로, 메인 컨퍼런스(IMPACT)와 다양한 사이드 이벤트를 진행합니다.• 참가자 신청: 7/13 현재 접수중 - https://tickets.koreablockchainweek.com/ (유료) (7/31까지 Early Bird 접수중, 이후 Regular & On-site Pass 접수)• 참고사항(7/13 기준): 최근 이슈가 되는 스테이블코인 이야기는 얼마나 나올까요? 관전 포인트 중 하나입니다.• 한줄설명: 래블업이 주최하는 기술 컨퍼런스 lab | up > /conf가 올해로 5회째를 맞이합니다. AI, HPC, 오픈소스 분야의 개발자와 엔지니어들이 모이는 래블업 컨퍼런스에서 경험과 인사이트를 얻어가세요!• 참고사항(7/13 기준): 발표자 신청을 받기 시작했습니다(7/14-8/3, 결과발표 8/8) - https://www.backend.ai/ko/event/lablup-conf-5th• 한줄설명: 국제 음악기술 컨퍼런스이나 올해는 국내에서 개최합니다(대전 카이스트).• 신청: https://ismir2025.ismir.net/Registration (유료) (Basic & General 기준으로 Early Bird: ~Aug 4, Regular: Aug 5 ~ Sep 20, On-site: Sep 21 ~ 25, 1day Pass도 있음)• 참고사항: ISMIR = International Society for Music Information Retrieval Conference (음악검색 테마를 중심으로 AI기술 내용/발표를 포함합니다)• 한줄설명: OpenAI에서 세 번째 개최하는 개발자 컨퍼런스입니다.• 신청: 7/13 현재 등록 알림메일 신청이 가능합니다 => https://www.devday.openai.com/• 참고사항: 2024년에는 샌프란, 런던, 싱가폴 세 곳에서 컨퍼런스를 진행했었습니다.• 참고사항: 샌프란에서 발표되는 내용을 중심으로, 2개월 전후로 국가별로 내용을 보강하여 매년 리캡 세미나를 진행하고 있습니다(예: UNIVERSE24 Recap Seoul, Tokyo 등).• 한줄설명: SK의 대표 기술 컨퍼런스인 SK TECH SUMMIT이 '24년부터 SK AI SUMMIT으로 새롭게 개최하였습니다.• 일시/장소: 11월 예정, 서울 코엑스 예정 (2024년에는 11/4 - 11/5, 코엑스에서 진행)• 참고사항(7/13 기준): Youtube에서 지난 AI SUMMIT & TECH SUMMIT 발표내용을 보실 수 있습니다 - https://www.youtube.com/@skaisummit2024• 참고사항(7/13 기준): (1)과는 별도의 행사로, MIT Technology Review를 발간하는 DMK Global에서 행사를 주관합니다.국내 주요 연례 컨퍼런스 중, 7/13 현재 일정 미공개 행사들입니다. 일정이 확정되면 상단으로 배치 예정입니다. (아래 이미지는 2024년 메인 페이지 스크린샷입니다)• 한줄설명: 네이버 연례 개발자 컨퍼런스로, 2024년에는 Deview와 통합하여 코엑스에서 2일간 진행하였습니다.• 참고사항(7/13 현재): 위 웹사이트에서
python
7/13/2025

2025 하반기 NEW! 기술 세미나 & 컨퍼런스 일정 정리! (ver.250713)
안녕하세요 SK플래닛 DevRel 담당자입니다. 여러 곳에서 열리는 국내외 기술 세미나 & 컨퍼런스 주요 정보를 한 곳에 정리해 보았습니다. 저희 업무에도 활용할 겸 최신 정보를 정리하면서, 개발자 여러분들도 함께 참고하실 수 있도록 현재까지 공개된 주요 기술 행사 일정들을 공유드리오니 참고하시기 바랍니다.• 7월: TOSS MAKERS CONFERENCE 25 | Google I/O Extended Incheon 2025 | 한빛미디어 북토크('코드 너머' DevRel 세미나) | OKKY 7월 세미나: '개발자의 문장력'• 한줄설명: 올해 'Every Maker, Every Tech' 라는 주제로, 토스에서 프로덕트/디자인/개발 '통합' 컨퍼런스를 3일간 진행합니다 - 종전에는 SLASH(개발), Simplicity(디자인) 등으로 나누어 진행.• 참가자 신청: 7월 13일(일)까지 접수를 받습니다(무료, 추첨 후 7/16 결과발표) => https://toss.im/tmc-25• 참고사항(7/13 기준): 날짜별 주제가 상이하며, 편의를 위해 한 날짜만 신청 가능합니다.(예: Day3 - Engineering Day)• 한줄설명: Google I/O 현재 참관기 등 5개 트랙, 총 27개 세션 + Hands-on 워크숍 - Google 개발 생태계의 최신 기술과 현장의 목소리를 인천에서 만나세요!• 한줄설명: 삼성전자, 우아한형제들, SKT, 카카오페이, (전)토스 DevRel 실무자의 생생한 이야기를 소개합니다!• 참고사항: '코드 너머, 회사보다 오래 남을 개발자' 도서 출간 기념 북토크 행사입니다.• 한줄설명: 제목이 설명 그대로를 말해줍니다 : )• 참고사항(7/13 기준): CJ올리브영 DevRel Specialist 최가인 님께서 발표해 주십니다.• 한줄설명: 국내 최대 파이썬 컨퍼런스로 AI개발부터 파이썬 사용기까지 다양한 발표를 진행합니다(올해 주제: 'Weave with Python').• 참가자 신청: 7/13 현재 접수중(유료), 튜토리얼 티켓 판매(7/7-8/1), 일반 참가자/개인 후원자 티켓 판매(6/15-8/17, 소진시까지)• 기타: 파이콘 한국은 커뮤니티 주관으로 이루어지는 비영리 개발자 대상 행사로, 오픈 소스인 파이썬의 저변 확대 및 커뮤니티의 활성화를 목표로 합니다.• 한줄설명: FEConf는 국내외 프론트엔드 개발자들이 한자리에 모여 경험을 나누고, 기술의 흐름을 함께 만들어 가는 행사입니다(국내 최대 프론트엔드 개발자 행사).• 기타: 7/13 현재 위 링크를 통해 스피커(연사) 및 라이트닝 톡 발표자 모집을 받고 있습니다(후원사도...).(참고) 아쉽게도 매년 8월 열렸던 인프콘은, 올해는 열리지 않는다고 합니다(내년에...).• 한줄설명: KWDC(Koreawide Developer Conference) 주관 한국 애플 생태계 컨퍼런스(개발자, 기획자, 디자이너를 모두 아우르는 행사)• 한줄설명: 국내 최대 블록체인 행사로, 메인 컨퍼런스(IMPACT)와 다양한 사이드 이벤트를 진행합니다.• 참가자 신청: 7/13 현재 접수중 - https://tickets.koreablockchainweek.com/ (유료) (7/31까지 Early Bird 접수중, 이후 Regular & On-site Pass 접수)• 참고사항(7/13 기준): 최근 이슈가 되는 스테이블코인 이야기는 얼마나 나올까요? 관전 포인트 중 하나입니다.• 한줄설명: 래블업이 주최하는 기술 컨퍼런스 lab | up > /conf가 올해로 5회째를 맞이합니다. AI, HPC, 오픈소스 분야의 개발자와 엔지니어들이 모이는 래블업 컨퍼런스에서 경험과 인사이트를 얻어가세요!• 참고사항(7/13 기준): 발표자 신청을 받기 시작했습니다(7/14-8/3, 결과발표 8/8) - https://www.backend.ai/ko/event/lablup-conf-5th• 한줄설명: 국제 음악기술 컨퍼런스이나 올해는 국내에서 개최합니다(대전 카이스트).• 신청: https://ismir2025.ismir.net/Registration (유료) (Basic & General 기준으로 Early Bird: ~Aug 4, Regular: Aug 5 ~ Sep 20, On-site: Sep 21 ~ 25, 1day Pass도 있음)• 참고사항: ISMIR = International Society for Music Information Retrieval Conference (음악검색 테마를 중심으로 AI기술 내용/발표를 포함합니다)• 한줄설명: OpenAI에서 세 번째 개최하는 개발자 컨퍼런스입니다.• 신청: 7/13 현재 등록 알림메일 신청이 가능합니다 => https://www.devday.openai.com/• 참고사항: 2024년에는 샌프란, 런던, 싱가폴 세 곳에서 컨퍼런스를 진행했었습니다.• 참고사항: 샌프란에서 발표되는 내용을 중심으로, 2개월 전후로 국가별로 내용을 보강하여 매년 리캡 세미나를 진행하고 있습니다(예: UNIVERSE24 Recap Seoul, Tokyo 등).• 한줄설명: SK의 대표 기술 컨퍼런스인 SK TECH SUMMIT이 '24년부터 SK AI SUMMIT으로 새롭게 개최하였습니다.• 일시/장소: 11월 예정, 서울 코엑스 예정 (2024년에는 11/4 - 11/5, 코엑스에서 진행)• 참고사항(7/13 기준): Youtube에서 지난 AI SUMMIT & TECH SUMMIT 발표내용을 보실 수 있습니다 - https://www.youtube.com/@skaisummit2024• 참고사항(7/13 기준): (1)과는 별도의 행사로, MIT Technology Review를 발간하는 DMK Global에서 행사를 주관합니다.국내 주요 연례 컨퍼런스 중, 7/13 현재 일정 미공개 행사들입니다. 일정이 확정되면 상단으로 배치 예정입니다. (아래 이미지는 2024년 메인 페이지 스크린샷입니다)• 한줄설명: 네이버 연례 개발자 컨퍼런스로, 2024년에는 Deview와 통합하여 코엑스에서 2일간 진행하였습니다.• 참고사항(7/13 현재): 위 웹사이트에서
2025.07.13
python

좋아요

별로에요

Amazon VPC Route Server 소개와 구축 및 이중화 테스트
• None VPC 내에서 네트워크 가상 어플라이언스 간의 동적 라우팅을 간소화하기 위해 사용할 수 있는 완전 관리형 라우팅 제어 서비스• None BGP(Border Gateway Protocol)를 활용하여 네트워크 경로를 동적으로 학습하고, VPC 라우팅 테이블을 자동으로 갱신• None 사용자 지정 스크립트나 오버레이 네트워크 없이도 경로 학습 및 전파가 가능하도록 지원• None 가상 방화벽, IDS/IPS 등 네트워크 가상 어플라이언스(NVA)와의 통합을 간소화VPC Route Server를 이해하기 위한 주요 구성 요소 및 용어• None Route Server가 BGP 피어 등으로부터 학습한 모든 라우팅 정보를 저장하는 데이터베이스• None 네트워크의 최신 토폴로지를 반영하며 지속적으로 업데이트됨• None FIB에 반영할 최적 경로 선정을 위한 평가 기준 역할 수행• None RIB에 저장된 정보 중에서 Route Server가 최적 경로로 판단한 경로만을 선별하여 저장• None 실제 VPC의 라우팅 테이블에 설치되는 경로 집합• None RIB에 변화가 생기면, FIB도 함께 재계산되어 최신 경로를 반영• None AWS에서 관리하는 서브넷 내부 구성 요소• None Route Server와 BGP 피어 간의 BGP 세션을 직접 연결할 수 있도록 하는 인터페이스 역할• None Route Server Endpoint와 AWS 내 배포된 장비(예: 가상 방화벽, NAT 장비 등) 간의 BGP 세션• None 다음 조건을 충족해야 함: - VPC 내에서 ENI(탄력적 네트워크 인터페이스)를 가질 것 - BGP 프로토콜을 지원하고 세션을 직접 개시할 수 있을 것• None 특정 VPC와 Route Server 간에 BGP 기반 라우팅 동기화를 위한 연결 관계• None 이 연결을 통해 VPC 라우팅 테이블에 BGP 기반 동적 경로 전파 가능• None 활성화된 경우, FIB에 있는 경로를 지정된 라우팅 테이블에 자동으로 설치• None 장애 발생 시, 경로 철회(Withdraw)를 자동 반영하여 즉각적인 트래픽 Re-라우팅 가능다음은, 이번 포스팅에서 다룰 구성도입니다.하나의 VPC 안에 Public Subent 2곳에는 네트워크 가상 어플라이언스(NVA) 역할을 할 ZIGI-Proxy를 2대 구성합니다.VPC Route Server를 만들어서, ZIGI-VPC1에 연결하고,Private Subnet 2곳에는 VPC Route Server와 연결 할 Endpoint를 구성합니다.가운데 Private Subnet에서는 VPC Router Server와 NVA (ZIGI-Proxy)간의 BGP 연동을 통해서,인터넷으로 가는 Default 경로를 Proxy1 으로 보낼지, Proxy2로 보낼지에 대한 라우팅 경로를라우팅 테이블에서 반영합니다.VPC 대시보드에서 Route Servers 메뉴로 들어가서,Route Server 이름을 ZIGI-RT라고 하고,Route Server에서 BGP 연동에 사용 할 ASN(AS Number)를 설정합니다.BGP ASN은 1-424967295까지 설정이 가능하지만,Private ASN인 4512–65534 (16-bit ASN) 혹은 4200000000–4294967294 (32-bit ASN)을 사용하는 것을 권고합니다.본 포스팅에서는 나머지는 기본 값으로 두고 생성합니다.참고로, Persist routes는 모든 BGP 세션이 종료된 이후에 경로가 라우팅 서버의 라우팅 Database로 유지 여부를 결정합니다.Enable SNS notifications은 BGP의 상태 값을 SNS 알림을 활성화 하게 합니다.ZIGI-RT라는 이름으로 VPC Route Server가 다음과 같이 생성되었습니다.이제 Route Server를 VPC에 연결합니다.Router Server를 'ZIGI-VPC'라는 이름의 VPC에 연결합니다.Route Server는 1개의 VPC에만 연결이 가능하고,VPC는 최대 5개의 Router Server 연결이 가능합니다. (Support Center를 통해서 한도 증가 가능)Route Server의 경로(Route) 정보를 전파할 서브넷 설정Route Server에서 Route 정보를 전파(Propagations)할 서브넷을 설정합니다.Route Server와 BGP를 연동해서 받은 네트워크 대역 정보를 Route Server의 Propagations에서 설정한 서브넷으로 광고를 하게 됩니다.ZIGI-RT라는 Route Server의 Propagations 메뉴에서 'Enable propagation'을 클릭합니다Pri-RT1이라는 Route table에 네트워크 대역을 광고하기 위해서 선택합니다Route Server와 VPC를 연결하고 난 이후에는 VPC Route Server의 Endpoint를 생성합니다.Route Server와 네트워크 가상 어플라이언스 역할을 하는 ZIGI-Proxy 간의 BGP 연동은 이 Endpoint를 통하게 됩니다.즉, Route Server와 BGP Peer(여기에서는 ZIGI-Proxy) 간의 BGP 연결을 지원하는 관리형 구성 요소가 Endpoint입니다.Route Server Endpoint의 이름으로는 ZIGI-RT-EP1으로 하고,앞서 만든 Route Server를 선택합니다.그리고, Endpoint를 생성 할 Subnet을 지정합니다.이중화를 위해서 서브넷 당 2개의 Endpoint를 만들어야 하지만본 포스팅에서 가용영역 2개에서 서브넷 당 1개의 Endpoint를 만들었습니다.이제 Route Server Endpoint에서 ZIGI-Proxy와 BGP 연동을 위해,Route Servrer peers를 추가 합니다.ZIGI-RT-EP1의 Endpoint에서 Route server peers 메뉴에서,ZIGI-RT-EP1 Endpoint와 BGP를 연결한 Peer의 이름을 'ZIGI-RS-Peer1'로 하고,ZIGI-Proxy1와 BGP 연동을 하기 때문에,ZIGI-Proxy1의 IP 주소를 Peer address와ZIGI-Proxy1에서 사용 할 ASN인 6
7/11/2025

Amazon VPC Route Server 소개와 구축 및 이중화 테스트
• None VPC 내에서 네트워크 가상 어플라이언스 간의 동적 라우팅을 간소화하기 위해 사용할 수 있는 완전 관리형 라우팅 제어 서비스• None BGP(Border Gateway Protocol)를 활용하여 네트워크 경로를 동적으로 학습하고, VPC 라우팅 테이블을 자동으로 갱신• None 사용자 지정 스크립트나 오버레이 네트워크 없이도 경로 학습 및 전파가 가능하도록 지원• None 가상 방화벽, IDS/IPS 등 네트워크 가상 어플라이언스(NVA)와의 통합을 간소화VPC Route Server를 이해하기 위한 주요 구성 요소 및 용어• None Route Server가 BGP 피어 등으로부터 학습한 모든 라우팅 정보를 저장하는 데이터베이스• None 네트워크의 최신 토폴로지를 반영하며 지속적으로 업데이트됨• None FIB에 반영할 최적 경로 선정을 위한 평가 기준 역할 수행• None RIB에 저장된 정보 중에서 Route Server가 최적 경로로 판단한 경로만을 선별하여 저장• None 실제 VPC의 라우팅 테이블에 설치되는 경로 집합• None RIB에 변화가 생기면, FIB도 함께 재계산되어 최신 경로를 반영• None AWS에서 관리하는 서브넷 내부 구성 요소• None Route Server와 BGP 피어 간의 BGP 세션을 직접 연결할 수 있도록 하는 인터페이스 역할• None Route Server Endpoint와 AWS 내 배포된 장비(예: 가상 방화벽, NAT 장비 등) 간의 BGP 세션• None 다음 조건을 충족해야 함: - VPC 내에서 ENI(탄력적 네트워크 인터페이스)를 가질 것 - BGP 프로토콜을 지원하고 세션을 직접 개시할 수 있을 것• None 특정 VPC와 Route Server 간에 BGP 기반 라우팅 동기화를 위한 연결 관계• None 이 연결을 통해 VPC 라우팅 테이블에 BGP 기반 동적 경로 전파 가능• None 활성화된 경우, FIB에 있는 경로를 지정된 라우팅 테이블에 자동으로 설치• None 장애 발생 시, 경로 철회(Withdraw)를 자동 반영하여 즉각적인 트래픽 Re-라우팅 가능다음은, 이번 포스팅에서 다룰 구성도입니다.하나의 VPC 안에 Public Subent 2곳에는 네트워크 가상 어플라이언스(NVA) 역할을 할 ZIGI-Proxy를 2대 구성합니다.VPC Route Server를 만들어서, ZIGI-VPC1에 연결하고,Private Subnet 2곳에는 VPC Route Server와 연결 할 Endpoint를 구성합니다.가운데 Private Subnet에서는 VPC Router Server와 NVA (ZIGI-Proxy)간의 BGP 연동을 통해서,인터넷으로 가는 Default 경로를 Proxy1 으로 보낼지, Proxy2로 보낼지에 대한 라우팅 경로를라우팅 테이블에서 반영합니다.VPC 대시보드에서 Route Servers 메뉴로 들어가서,Route Server 이름을 ZIGI-RT라고 하고,Route Server에서 BGP 연동에 사용 할 ASN(AS Number)를 설정합니다.BGP ASN은 1-424967295까지 설정이 가능하지만,Private ASN인 4512–65534 (16-bit ASN) 혹은 4200000000–4294967294 (32-bit ASN)을 사용하는 것을 권고합니다.본 포스팅에서는 나머지는 기본 값으로 두고 생성합니다.참고로, Persist routes는 모든 BGP 세션이 종료된 이후에 경로가 라우팅 서버의 라우팅 Database로 유지 여부를 결정합니다.Enable SNS notifications은 BGP의 상태 값을 SNS 알림을 활성화 하게 합니다.ZIGI-RT라는 이름으로 VPC Route Server가 다음과 같이 생성되었습니다.이제 Route Server를 VPC에 연결합니다.Router Server를 'ZIGI-VPC'라는 이름의 VPC에 연결합니다.Route Server는 1개의 VPC에만 연결이 가능하고,VPC는 최대 5개의 Router Server 연결이 가능합니다. (Support Center를 통해서 한도 증가 가능)Route Server의 경로(Route) 정보를 전파할 서브넷 설정Route Server에서 Route 정보를 전파(Propagations)할 서브넷을 설정합니다.Route Server와 BGP를 연동해서 받은 네트워크 대역 정보를 Route Server의 Propagations에서 설정한 서브넷으로 광고를 하게 됩니다.ZIGI-RT라는 Route Server의 Propagations 메뉴에서 'Enable propagation'을 클릭합니다Pri-RT1이라는 Route table에 네트워크 대역을 광고하기 위해서 선택합니다Route Server와 VPC를 연결하고 난 이후에는 VPC Route Server의 Endpoint를 생성합니다.Route Server와 네트워크 가상 어플라이언스 역할을 하는 ZIGI-Proxy 간의 BGP 연동은 이 Endpoint를 통하게 됩니다.즉, Route Server와 BGP Peer(여기에서는 ZIGI-Proxy) 간의 BGP 연결을 지원하는 관리형 구성 요소가 Endpoint입니다.Route Server Endpoint의 이름으로는 ZIGI-RT-EP1으로 하고,앞서 만든 Route Server를 선택합니다.그리고, Endpoint를 생성 할 Subnet을 지정합니다.이중화를 위해서 서브넷 당 2개의 Endpoint를 만들어야 하지만본 포스팅에서 가용영역 2개에서 서브넷 당 1개의 Endpoint를 만들었습니다.이제 Route Server Endpoint에서 ZIGI-Proxy와 BGP 연동을 위해,Route Servrer peers를 추가 합니다.ZIGI-RT-EP1의 Endpoint에서 Route server peers 메뉴에서,ZIGI-RT-EP1 Endpoint와 BGP를 연결한 Peer의 이름을 'ZIGI-RS-Peer1'로 하고,ZIGI-Proxy1와 BGP 연동을 하기 때문에,ZIGI-Proxy1의 IP 주소를 Peer address와ZIGI-Proxy1에서 사용 할 ASN인 6
2025.07.11

좋아요

별로에요

Kubernetes GPU 클러스터에서 AI 서비스 오토스케일링하기
네이버 사내 기술 교류 행사인 NAVER ENGINEERING DAY 2025(5월)에서 발표되었던 세션을 공개합니다. 발표 내용대규모 쿠버네티스 GPU 클러스터에서 자체 HPA 시스템 구축을 통해 글로벌 유저 트래픽에 동적으로 대응하는 AI 서비스 오토스케일링을 적용한 사례를 소개합니다.발표 대상AI 서비스 운영을 위해 GPU 서버 기반의 Kubernetes 클러스터 도입을 고려하는 엔지니어AI 서비스 오토스케일링을 Kubernetes 에서 도입하고자 하는 엔지니어기본 HPA 보다 고도화된 방법으로 오토스케일링을 도입하고자 하는 엔지니어목차왜 SNOW는 GPU orchestration이 필요한가GPU 기반 서비스의 오토스케일링이 어려운 이유KEDA: Event-Driven AutoscalerSNOW의 GPU Orchestration 시스템 NAVER ENGINEERING DAY란? NAVER에서는 사내 개발 경험과 기술 트렌드를 교류를 할 수 있는 프로그램이 많이 있습니다. 그중 매회 평균 70개 이상의 발표가 이루어지는 NAVER ENGINEERING DAY를 빼놓을 수 없는데요. 2016년부터 시작된 ENGINEERING DAY는 실무에서의 기술 개발 경험과 새로운 기술과 플랫폼 도입 시 유용하게 활용될 수 있는 팁 등을 공유하며 서로 배우고 성장하는 네이버의 대표적인 사내 개발자 행사입니다. 올해 진행된 NAVER ENGINEERING DAY의 일부 세션을 공개합니다.
7/11/2025

Kubernetes GPU 클러스터에서 AI 서비스 오토스케일링하기
네이버 사내 기술 교류 행사인 NAVER ENGINEERING DAY 2025(5월)에서 발표되었던 세션을 공개합니다. 발표 내용대규모 쿠버네티스 GPU 클러스터에서 자체 HPA 시스템 구축을 통해 글로벌 유저 트래픽에 동적으로 대응하는 AI 서비스 오토스케일링을 적용한 사례를 소개합니다.발표 대상AI 서비스 운영을 위해 GPU 서버 기반의 Kubernetes 클러스터 도입을 고려하는 엔지니어AI 서비스 오토스케일링을 Kubernetes 에서 도입하고자 하는 엔지니어기본 HPA 보다 고도화된 방법으로 오토스케일링을 도입하고자 하는 엔지니어목차왜 SNOW는 GPU orchestration이 필요한가GPU 기반 서비스의 오토스케일링이 어려운 이유KEDA: Event-Driven AutoscalerSNOW의 GPU Orchestration 시스템 NAVER ENGINEERING DAY란? NAVER에서는 사내 개발 경험과 기술 트렌드를 교류를 할 수 있는 프로그램이 많이 있습니다. 그중 매회 평균 70개 이상의 발표가 이루어지는 NAVER ENGINEERING DAY를 빼놓을 수 없는데요. 2016년부터 시작된 ENGINEERING DAY는 실무에서의 기술 개발 경험과 새로운 기술과 플랫폼 도입 시 유용하게 활용될 수 있는 팁 등을 공유하며 서로 배우고 성장하는 네이버의 대표적인 사내 개발자 행사입니다. 올해 진행된 NAVER ENGINEERING DAY의 일부 세션을 공개합니다.
2025.07.11

좋아요

별로에요

AI 코딩 어시스턴트 도입을 위한 완벽 가이드: 기술 트렌드 및 기업 사례 중심
이 글은 AI 코딩 어시스턴트 기술의 시장 동향부터 주요 도입 사례, 기반 모델 비교, 솔루션 특징, 활용 시나리오까지 전반적인 흐름을 정리한 기술 블로그입니다.글로벌 및 국내 기업들의 실제 도입 사례를 중심으로, 어떤 방식으로 AI 어시스턴트를 활용하고 있는지 상세히 소개하며, Claude, DevStral, DeepSeek 등 최신 코딩 특화 모델 성능 비교도 함께 다룹니다.또한 다양한 솔루션의 장단점과 지원 환경을 비교하고, 개발 생산성 향상·테스트 자동화·보안 점검 등 실무 중심의 활용 사례도 구체적으로 제시합니다.AI 코딩 어시스턴트 도입을 검토 중인 조직이나 팀에게 실질적인 비교 기준과 전략 수립에 도움이 되는 현실적인 인사이트를 제공합니다.안녕하세요, 기술전략팀 이수경입니다. 최근 AI 코딩 어시스턴트는 코드 자동 완성을 넘어 테스트 생성, 리뷰, 보안 점검까지 지원하며 실제 개발 생산성에 기여하는 실용적 도구로 주목받고 있습니다.저희 회사도 이러한 흐름에 발맞춰, 사내 IDE 기반 AI 개발 환경과 내부 코딩 플랫폼을 운영하며 AI 기술을 활용한 개발 효율화 방안을 꾸준히 모색하고 있습니다.특히 최근에는 AI 코딩 어시스턴트 관련 기술과 시장 흐름이 빠르게 진화하고 있어, 글로벌 동향은 어떻게 바뀌고 있는지, 주요 기업들은 어떤 방식으로 대응하고 있는지를 살펴보게 되었습니다.이 글에서는 AI 코딩 어시스턴트의 시장 동향, 도입 사례, 주요 기술 및 모델 비교, 그리고 실제 활용 시나리오 중심으로 전반적인 흐름을 정리합니다.기업들의 AI 코딩 어시스턴트 도입이 확산되면서, 관련 시장 역시 빠르게 확대되고 있습니다. 글로벌 리서치 기관들의 전망을 바탕으로 시장 흐름을 정리하면 다음과 같습니다.• OpenAI, AI 코딩 스타트업 Windsurf(구 Codeium) 인수(약 30억 달러)→ ChatGPT의 에이전트화 및 코딩 지원 기능 강화• 애니스피어(Anysphere, AI IDE “Cursor” 개발사), 기업 가치 99억 달러 평가 → 차세대 AI IDE 시장 주도국내 시장의 경우 2025년 기준 수백억 원 규모로 성장할 것으로 예상되며, 주요 대기업을 중심으로 파일럿 단계를 거쳐 본격적인 확산 국면에 진입하고 있습니다. 국내 주요 기업들의 도입 사례를 살펴보겠습니다.국내 주요 기업 AI 코딩 어시스턴트 도입 사례 요약국내 주요 기업들은 각자의 보안 환경과 협업 도구에 따라 AI 코딩 어시스턴트 도입 방식에 차이를 보이고 있습니다.자체 구축, 상용 솔루션 도입, 오픈소스 기반 도구 연동까지 다양하지만, 도입 목적은 공통적으로 코드 작성 자동화, 리뷰 효율화, 테스트 생성 지원 등 개발 생산성 향상에 집중되어 있습니다.이제, 다음으로는 이러한 AI 코딩 어시스턴트의 기반이 되는 코딩 지원 모델들을 비교해 보겠습니다.AI 코딩 어시스턴트의 실질적인 성능은 어떤 언어 모델(LLM)을 기반으로 하느냐에 따라 큰 차이를 보입니다. 특히 코드 생성, 디버깅, 리뷰 자동화 등 복잡한 작업의 정확도와 효율은 모델의 품질에 직접적으로 영향을 받습니다.최근에는 이러한 개발 작업에 특화된 LLM이 빠르게 등장하고 있으며, 그 성능을 비교하고 평가하는 지표로 SWE-bench가 대표적으로 활용되고 있습니다.아래는 2025년 6월 기준, 주요 AI 코딩 지원 모델들을 벤치마크 성능, 기능적 특징, 지원 도구 기준으로 정리한 내용입니다.실제 시장과 실무 현장에서 주목받고 있는 모델들은 다음과 같이 요약할 수 있습니다.각 모델은 성능, 라이선스, 보안성, 오픈소스, 지원 IDE 및 도구 등 기업 환경에 따라 선택의 우선순위가 달라질 수 있습니다.예를 들어, Claude Opus 4는 성능 면에서 가장 우수하지만 API 기반으로만 제공되며, DeepSeek R1이나 Mistral DevStral은 성능 대비 오픈소스 및 온프레미스 활용 가능성이 높아 사내 인프라 환경에 맞춰 유연한 도입이 가능합니다.Claude Opus 4와 DevStral의 SWE-Bench는 아래 벤치마크에서 상세 수치를 확인할 수 있습니다.AI 코딩 어시스턴트의 도입은 단순히 모델 선택을 넘어서, 개발 환경 통합성, 보안 요구사항, 예산, 협업 도구와의 호환성 등 여러 요소를 고려해야 합니다.특히 기업 입장에서는 자체 IDE 통합 여부나 온프레미스 설치 가능성 등이 도입 결정에 중요한 영향을 미치게 됩니다.아래는 실제 시장에서 사용되는 다양한 AI 코딩 어시스턴트 솔루션을 기능, 장단점, 지원 환경 등 기준으로 비교한 내용입니다.• Cursor : 강력한 프로젝트 맥락 이해, 다중 파일 에이전트 모드, 다만 고비용 및 불안정성 일부 존재• Windsurf (Codeium 후속) : 무료 버전도 존재, 직관적 UI와 Cascade 에이전트로 멀티스텝 작업 지원• IBM watsonx : 엔터프라이즈 특화, 고비용이나 강력한 거버넌스 및 자바 현대화에 강점경량 오픈소스부터 엔터프라이즈 특화 솔루션까지, 개발팀의 목적과 여건에 맞춰 단계적으로 도입하고, 파일럿 테스트를 통해 실효성을 검증한 뒤 점진적으로 확산하는 전략이 현실적인 접근이라 할 수 있습니다.AI 코딩 어시스턴트의 활용 분야와 시나리오에 대해 알아 보겠습니다.AI 코딩 어시스턴트 도입 시 다음과 같은 장점이 있습니다.AI 코딩 어시스턴트는 단순한 코드 자동 완성을 넘어, 개발 생산성과 품질을 동시에 향상시킬 수 있는 현실적인 도구로 자리잡고 있습니다.글로벌 기업뿐만 아니라 국내 주요 기업들도 각자의 환경과 전략에 맞춰 빠르게 대응하고 있으며, 이제는 실제 업무 적용과 내부 최적화가 중요한 단계에 이르렀습니다.기업마다 요구사항은 다르지만, 파일럿 적용을 통해 도입 효과를 검증하고, 적절한 모델과 솔루션을 선택하는 ‘점진적 도입 전략’이 가장 현실적인 접근이라 할 수 있습니다.이 글이 AI 코딩 어시스턴트를 도입하고자 하는 분들께 현실적인 인사이트를 제공했기를 기대합니다.• 조직에서 AI 코딩 솔루션 도입, 어떻게 시작할까?
7/11/2025

AI 코딩 어시스턴트 도입을 위한 완벽 가이드: 기술 트렌드 및 기업 사례 중심
이 글은 AI 코딩 어시스턴트 기술의 시장 동향부터 주요 도입 사례, 기반 모델 비교, 솔루션 특징, 활용 시나리오까지 전반적인 흐름을 정리한 기술 블로그입니다.글로벌 및 국내 기업들의 실제 도입 사례를 중심으로, 어떤 방식으로 AI 어시스턴트를 활용하고 있는지 상세히 소개하며, Claude, DevStral, DeepSeek 등 최신 코딩 특화 모델 성능 비교도 함께 다룹니다.또한 다양한 솔루션의 장단점과 지원 환경을 비교하고, 개발 생산성 향상·테스트 자동화·보안 점검 등 실무 중심의 활용 사례도 구체적으로 제시합니다.AI 코딩 어시스턴트 도입을 검토 중인 조직이나 팀에게 실질적인 비교 기준과 전략 수립에 도움이 되는 현실적인 인사이트를 제공합니다.안녕하세요, 기술전략팀 이수경입니다. 최근 AI 코딩 어시스턴트는 코드 자동 완성을 넘어 테스트 생성, 리뷰, 보안 점검까지 지원하며 실제 개발 생산성에 기여하는 실용적 도구로 주목받고 있습니다.저희 회사도 이러한 흐름에 발맞춰, 사내 IDE 기반 AI 개발 환경과 내부 코딩 플랫폼을 운영하며 AI 기술을 활용한 개발 효율화 방안을 꾸준히 모색하고 있습니다.특히 최근에는 AI 코딩 어시스턴트 관련 기술과 시장 흐름이 빠르게 진화하고 있어, 글로벌 동향은 어떻게 바뀌고 있는지, 주요 기업들은 어떤 방식으로 대응하고 있는지를 살펴보게 되었습니다.이 글에서는 AI 코딩 어시스턴트의 시장 동향, 도입 사례, 주요 기술 및 모델 비교, 그리고 실제 활용 시나리오 중심으로 전반적인 흐름을 정리합니다.기업들의 AI 코딩 어시스턴트 도입이 확산되면서, 관련 시장 역시 빠르게 확대되고 있습니다. 글로벌 리서치 기관들의 전망을 바탕으로 시장 흐름을 정리하면 다음과 같습니다.• OpenAI, AI 코딩 스타트업 Windsurf(구 Codeium) 인수(약 30억 달러)→ ChatGPT의 에이전트화 및 코딩 지원 기능 강화• 애니스피어(Anysphere, AI IDE “Cursor” 개발사), 기업 가치 99억 달러 평가 → 차세대 AI IDE 시장 주도국내 시장의 경우 2025년 기준 수백억 원 규모로 성장할 것으로 예상되며, 주요 대기업을 중심으로 파일럿 단계를 거쳐 본격적인 확산 국면에 진입하고 있습니다. 국내 주요 기업들의 도입 사례를 살펴보겠습니다.국내 주요 기업 AI 코딩 어시스턴트 도입 사례 요약국내 주요 기업들은 각자의 보안 환경과 협업 도구에 따라 AI 코딩 어시스턴트 도입 방식에 차이를 보이고 있습니다.자체 구축, 상용 솔루션 도입, 오픈소스 기반 도구 연동까지 다양하지만, 도입 목적은 공통적으로 코드 작성 자동화, 리뷰 효율화, 테스트 생성 지원 등 개발 생산성 향상에 집중되어 있습니다.이제, 다음으로는 이러한 AI 코딩 어시스턴트의 기반이 되는 코딩 지원 모델들을 비교해 보겠습니다.AI 코딩 어시스턴트의 실질적인 성능은 어떤 언어 모델(LLM)을 기반으로 하느냐에 따라 큰 차이를 보입니다. 특히 코드 생성, 디버깅, 리뷰 자동화 등 복잡한 작업의 정확도와 효율은 모델의 품질에 직접적으로 영향을 받습니다.최근에는 이러한 개발 작업에 특화된 LLM이 빠르게 등장하고 있으며, 그 성능을 비교하고 평가하는 지표로 SWE-bench가 대표적으로 활용되고 있습니다.아래는 2025년 6월 기준, 주요 AI 코딩 지원 모델들을 벤치마크 성능, 기능적 특징, 지원 도구 기준으로 정리한 내용입니다.실제 시장과 실무 현장에서 주목받고 있는 모델들은 다음과 같이 요약할 수 있습니다.각 모델은 성능, 라이선스, 보안성, 오픈소스, 지원 IDE 및 도구 등 기업 환경에 따라 선택의 우선순위가 달라질 수 있습니다.예를 들어, Claude Opus 4는 성능 면에서 가장 우수하지만 API 기반으로만 제공되며, DeepSeek R1이나 Mistral DevStral은 성능 대비 오픈소스 및 온프레미스 활용 가능성이 높아 사내 인프라 환경에 맞춰 유연한 도입이 가능합니다.Claude Opus 4와 DevStral의 SWE-Bench는 아래 벤치마크에서 상세 수치를 확인할 수 있습니다.AI 코딩 어시스턴트의 도입은 단순히 모델 선택을 넘어서, 개발 환경 통합성, 보안 요구사항, 예산, 협업 도구와의 호환성 등 여러 요소를 고려해야 합니다.특히 기업 입장에서는 자체 IDE 통합 여부나 온프레미스 설치 가능성 등이 도입 결정에 중요한 영향을 미치게 됩니다.아래는 실제 시장에서 사용되는 다양한 AI 코딩 어시스턴트 솔루션을 기능, 장단점, 지원 환경 등 기준으로 비교한 내용입니다.• Cursor : 강력한 프로젝트 맥락 이해, 다중 파일 에이전트 모드, 다만 고비용 및 불안정성 일부 존재• Windsurf (Codeium 후속) : 무료 버전도 존재, 직관적 UI와 Cascade 에이전트로 멀티스텝 작업 지원• IBM watsonx : 엔터프라이즈 특화, 고비용이나 강력한 거버넌스 및 자바 현대화에 강점경량 오픈소스부터 엔터프라이즈 특화 솔루션까지, 개발팀의 목적과 여건에 맞춰 단계적으로 도입하고, 파일럿 테스트를 통해 실효성을 검증한 뒤 점진적으로 확산하는 전략이 현실적인 접근이라 할 수 있습니다.AI 코딩 어시스턴트의 활용 분야와 시나리오에 대해 알아 보겠습니다.AI 코딩 어시스턴트 도입 시 다음과 같은 장점이 있습니다.AI 코딩 어시스턴트는 단순한 코드 자동 완성을 넘어, 개발 생산성과 품질을 동시에 향상시킬 수 있는 현실적인 도구로 자리잡고 있습니다.글로벌 기업뿐만 아니라 국내 주요 기업들도 각자의 환경과 전략에 맞춰 빠르게 대응하고 있으며, 이제는 실제 업무 적용과 내부 최적화가 중요한 단계에 이르렀습니다.기업마다 요구사항은 다르지만, 파일럿 적용을 통해 도입 효과를 검증하고, 적절한 모델과 솔루션을 선택하는 ‘점진적 도입 전략’이 가장 현실적인 접근이라 할 수 있습니다.이 글이 AI 코딩 어시스턴트를 도입하고자 하는 분들께 현실적인 인사이트를 제공했기를 기대합니다.• 조직에서 AI 코딩 솔루션 도입, 어떻게 시작할까?
2025.07.11

좋아요

별로에요

전략적 QA와 리스크 관리: 장애를 예방하고 신뢰를 설계하는 품질의 힘
안녕하세요. 오피스기술검증팀 QA 엔지니어 양승혁입니다.최근 다양한 산업 분야에서 고객 서비스(CS)와 장애 대응은 기업과 제품의 이미지를 결정짓는 핵심 요소가 되었습니다.이런 흐름 속에서, 사전에 품질을 보장하며 장애 발생을 예방할 수 있는 전략적 QA(품질 보증) 활동과 리스크 관리의 중요성이 더욱 강조되고 있습니다.이 글에서는 QA의 개념과 주요 업무, 기대 효과에 대해 설명하고, 이를 제대로 수행하지 못했을 때 발생한 실제 사례를 통해 QA 리스크 관리의 중요성을 조명합니다. 또한 장애가 발생했을 때 효과적으로 대응하기 위한 전략까지 함께 살펴보겠습니다.품질검증(QA)과 리스크 관리의 중요성우리가 어떤 제품이나 서비스를 사용할 때 기대하는 가장 기본적인 전제는 “내가 원하는 기능이 문제 없이 잘 작동하는 것”입니다.이러한 기대를 충족시키기 위해 기업들이 수행하는 핵심적인 활동이 바로 품질보증(QA, Quality Assurance)입니다.QA는 제품이나 서비스가 일정한 품질 기준을 충족하도록 보장하는 체계적인 활동으로, 단순한 검수 수준을 넘어 결함을 사전에 예방하고, 제품의 전반적인 신뢰성을 높이는 데 목적이 있습니다. 이는 소프트웨어뿐 아니라 제조업, 서비스업 등 다양한 산업에서 필수적으로 수행되며 다음과 같은 주요 목표를 가집니다.• 고객 만족도 향상이처럼 QA는 단순한 품질 검토 단계를 넘어 기업의 경쟁력과 직결되는 핵심 프로세스입니다.아무리 철저한 QA를 수행하더라도, 예기치 못한 문제가 발생할 가능성은 언제든 존재합니다. 따라서 QA 활동이 실질적인 효과를 발휘하려면, 반드시 리스크 관리가 함께 고려되어야 합니다.제품 또는 서비스 개발 과정에서 발생할 수 있는 잠재적인 위험 요소를 사전에 식별하고, 그로 인한 부정적인 영향을 예방하거나 최소화할 수 있는 대응 전략을 수립하는 과정입니다.이 과정을 소홀히 하면, 출시 이후 예상치 못한 결함이나 품질 문제가 발생하여 브랜드 신뢰도 하락, 고객 만족도 저하, 비용 증가 등의 부작용이 발생할 수 있습니다. 특히 서비스 규모가 커지고 고객 접점이 다양해질수록, 사전 리스크 관리는 더욱 중요한 QA의 연장선이 됩니다.실질적인 품질 확보를 위해 QA와 리스크 관리는 반드시 함께 설계되어야 하며, 이를 위한 핵심 활동은 다음과 같습니다.• 리스크 식별: 개발 초기부터 발생 가능성이 있는 위험 요소를 예측하고 분석• 리스크 분석 및 평가: 각 리스크의 영향도와 발생 가능성을 평가하고 우선순위를 정함• 리스크 대응 계획 수립: 우선순위에 따른 대응 방안을 마련하고, 실제 문제 발생 시 신속하게 대처이러한 활동은 국제적으로도 PMBOK, PRINCE2 등 다양한 프로젝트 관리 표준에서 리스크 관리의 핵심 프로세스로 정의되어 있으며, 아래와 같은 절차를 따릅니다.이와 같은 리스크 관리 프로세스는 전사적 프로젝트 운영의 관점에서 설정된 것이며, 실제 QA 단계에서는 이를 기반으로 보다 실질적이고 실행 가능한 테스트 전략으로 구체화됩니다.QA에서는 특히 리스크 기반 테스트(Risk-Based Testing)라는 접근을 통해, 리스크가 높은 기능부터 우선순위를 정해 테스트를 수행하고, 리소스를 효율적으로 배분하는 방식이 효과적으로 활용됩니다.아래는 리스크 기반 테스팅의 실제 프로세스를 도식화한 것입니다. 리스크 항목을 식별하고 분석한 후, 이를 바탕으로 테스트 전략을 수립합니다.이처럼 리스크 관리가 잘 수행되면, 개발 과정의 시행착오를 줄일 수 있고, 출시 전 제품의 품질을 확보할 수 있습니다. 이는 기업이 불필요한 비용을 줄이고, 신뢰성 높은 제품을 제공하며, 시장에서 안정적으로 성장하는 데 핵심적인 역할을 합니다.따라서 QA와 리스크 관리는 단순히 품질을 보장하는 차원을 넘어, 기업의 성공적인 운영과 지속적인 경쟁력 확보를 위한 필수 전략이라 할 수 있습니다.이제 본격적인 테스트 전략을 살펴보기에 앞서, 리스크 관리에도 다양한 유형이 존재한다는 점을 짚고 넘어갈 필요가 있습니다.리스크 관리는 일반적으로 프로젝트 리스크 관리와 품질 리스크 관리로 구분됩니다.프로젝트 리스크 관리는 일정 지연, 예산 초과, 외주 협력 실패 등 프로젝트 전반의 성공에 영향을 미치는 리스크를 다루며, QA 일정을 포함한 전반적인 진행 상황에도 간접적인 영향을 줍니다.반면, 품질 리스크 관리는 테스트 누락, 요구사항 미반영, 성능 저하, 보안 취약점 등 제품의 품질에 직접적으로 영향을 미치는 요소들을 관리합니다. 이 영역은 QA 활동의 핵심으로, 사전에 테스트 전략을 수립하고 결함을 예방하는 역할을 수행합니다.이처럼 두 리스크 관리 영역에서 각각의 역할은 다르지만 모두 장애를 사전에 예방하고 제품 품질을 높이기 위한 중요한 기반이 됩니다.예를 들어, 외주 업체의 납기가 지연되면 전체 일정에 차질이 생기고, 테스트 일정이 줄어드는 문제가 발생할 수 있습니다. 이는 프로젝트 전반에 영향을 주는 리스크로, QA 활동에도 직간접적인 부담을 주게 됩니다.반면, 테스트 단계에서 주요 기능이 누락되어 제품 결함으로 이어지는 상황은 품질 자체에 대한 리스크로, 사용자에게 직접적인 피해를 주고 서비스 신뢰도에 영향을 미칩니다.QA는 이처럼 제품의 품질을 중심으로 움직이지만, 프로젝트 일정이나 리소스 변화와 같은 외부 변수에도 유연하게 대응해야 합니다. 예정된 테스트가 제대로 수행되지 못하면, 단순한 오류 하나가 심각한 장애로 이어질 수 있기 때문입니다.결국 품질 리스크와 프로젝트 리스크는 각각 다른 성격을 갖고 있지만, 실제 현장에서는 서로 맞물려 작동하며 함께 관리되어야 합니다. QA는 이러한 두 리스크를 모두 인식하고 조율하는 핵심적인 역할을 맡고 있으며, 이를 체계적으로 관리하고 사전에 결함을 차단하기 위해 다양한 테스트 기법을 활용합니다. 테스트는 단순한 검증을 넘어, 품질과 안정성을 확보하기 위한 가장 실질적인 리스크 대응 도구입니다.소프트웨어 테스트 방법론에는 기능 테스트, 회귀 테스트, 경계값 분석, 탐색적 테스트, 성능 테스트 등이 있습니다. 이 중에서도 기능 테스트와 회귀 테스트는 가장 보편적으로 사용되고 필수적으로 수행되는 기법입니다.기능 테스트는
7/11/2025

전략적 QA와 리스크 관리: 장애를 예방하고 신뢰를 설계하는 품질의 힘
안녕하세요. 오피스기술검증팀 QA 엔지니어 양승혁입니다.최근 다양한 산업 분야에서 고객 서비스(CS)와 장애 대응은 기업과 제품의 이미지를 결정짓는 핵심 요소가 되었습니다.이런 흐름 속에서, 사전에 품질을 보장하며 장애 발생을 예방할 수 있는 전략적 QA(품질 보증) 활동과 리스크 관리의 중요성이 더욱 강조되고 있습니다.이 글에서는 QA의 개념과 주요 업무, 기대 효과에 대해 설명하고, 이를 제대로 수행하지 못했을 때 발생한 실제 사례를 통해 QA 리스크 관리의 중요성을 조명합니다. 또한 장애가 발생했을 때 효과적으로 대응하기 위한 전략까지 함께 살펴보겠습니다.품질검증(QA)과 리스크 관리의 중요성우리가 어떤 제품이나 서비스를 사용할 때 기대하는 가장 기본적인 전제는 “내가 원하는 기능이 문제 없이 잘 작동하는 것”입니다.이러한 기대를 충족시키기 위해 기업들이 수행하는 핵심적인 활동이 바로 품질보증(QA, Quality Assurance)입니다.QA는 제품이나 서비스가 일정한 품질 기준을 충족하도록 보장하는 체계적인 활동으로, 단순한 검수 수준을 넘어 결함을 사전에 예방하고, 제품의 전반적인 신뢰성을 높이는 데 목적이 있습니다. 이는 소프트웨어뿐 아니라 제조업, 서비스업 등 다양한 산업에서 필수적으로 수행되며 다음과 같은 주요 목표를 가집니다.• 고객 만족도 향상이처럼 QA는 단순한 품질 검토 단계를 넘어 기업의 경쟁력과 직결되는 핵심 프로세스입니다.아무리 철저한 QA를 수행하더라도, 예기치 못한 문제가 발생할 가능성은 언제든 존재합니다. 따라서 QA 활동이 실질적인 효과를 발휘하려면, 반드시 리스크 관리가 함께 고려되어야 합니다.제품 또는 서비스 개발 과정에서 발생할 수 있는 잠재적인 위험 요소를 사전에 식별하고, 그로 인한 부정적인 영향을 예방하거나 최소화할 수 있는 대응 전략을 수립하는 과정입니다.이 과정을 소홀히 하면, 출시 이후 예상치 못한 결함이나 품질 문제가 발생하여 브랜드 신뢰도 하락, 고객 만족도 저하, 비용 증가 등의 부작용이 발생할 수 있습니다. 특히 서비스 규모가 커지고 고객 접점이 다양해질수록, 사전 리스크 관리는 더욱 중요한 QA의 연장선이 됩니다.실질적인 품질 확보를 위해 QA와 리스크 관리는 반드시 함께 설계되어야 하며, 이를 위한 핵심 활동은 다음과 같습니다.• 리스크 식별: 개발 초기부터 발생 가능성이 있는 위험 요소를 예측하고 분석• 리스크 분석 및 평가: 각 리스크의 영향도와 발생 가능성을 평가하고 우선순위를 정함• 리스크 대응 계획 수립: 우선순위에 따른 대응 방안을 마련하고, 실제 문제 발생 시 신속하게 대처이러한 활동은 국제적으로도 PMBOK, PRINCE2 등 다양한 프로젝트 관리 표준에서 리스크 관리의 핵심 프로세스로 정의되어 있으며, 아래와 같은 절차를 따릅니다.이와 같은 리스크 관리 프로세스는 전사적 프로젝트 운영의 관점에서 설정된 것이며, 실제 QA 단계에서는 이를 기반으로 보다 실질적이고 실행 가능한 테스트 전략으로 구체화됩니다.QA에서는 특히 리스크 기반 테스트(Risk-Based Testing)라는 접근을 통해, 리스크가 높은 기능부터 우선순위를 정해 테스트를 수행하고, 리소스를 효율적으로 배분하는 방식이 효과적으로 활용됩니다.아래는 리스크 기반 테스팅의 실제 프로세스를 도식화한 것입니다. 리스크 항목을 식별하고 분석한 후, 이를 바탕으로 테스트 전략을 수립합니다.이처럼 리스크 관리가 잘 수행되면, 개발 과정의 시행착오를 줄일 수 있고, 출시 전 제품의 품질을 확보할 수 있습니다. 이는 기업이 불필요한 비용을 줄이고, 신뢰성 높은 제품을 제공하며, 시장에서 안정적으로 성장하는 데 핵심적인 역할을 합니다.따라서 QA와 리스크 관리는 단순히 품질을 보장하는 차원을 넘어, 기업의 성공적인 운영과 지속적인 경쟁력 확보를 위한 필수 전략이라 할 수 있습니다.이제 본격적인 테스트 전략을 살펴보기에 앞서, 리스크 관리에도 다양한 유형이 존재한다는 점을 짚고 넘어갈 필요가 있습니다.리스크 관리는 일반적으로 프로젝트 리스크 관리와 품질 리스크 관리로 구분됩니다.프로젝트 리스크 관리는 일정 지연, 예산 초과, 외주 협력 실패 등 프로젝트 전반의 성공에 영향을 미치는 리스크를 다루며, QA 일정을 포함한 전반적인 진행 상황에도 간접적인 영향을 줍니다.반면, 품질 리스크 관리는 테스트 누락, 요구사항 미반영, 성능 저하, 보안 취약점 등 제품의 품질에 직접적으로 영향을 미치는 요소들을 관리합니다. 이 영역은 QA 활동의 핵심으로, 사전에 테스트 전략을 수립하고 결함을 예방하는 역할을 수행합니다.이처럼 두 리스크 관리 영역에서 각각의 역할은 다르지만 모두 장애를 사전에 예방하고 제품 품질을 높이기 위한 중요한 기반이 됩니다.예를 들어, 외주 업체의 납기가 지연되면 전체 일정에 차질이 생기고, 테스트 일정이 줄어드는 문제가 발생할 수 있습니다. 이는 프로젝트 전반에 영향을 주는 리스크로, QA 활동에도 직간접적인 부담을 주게 됩니다.반면, 테스트 단계에서 주요 기능이 누락되어 제품 결함으로 이어지는 상황은 품질 자체에 대한 리스크로, 사용자에게 직접적인 피해를 주고 서비스 신뢰도에 영향을 미칩니다.QA는 이처럼 제품의 품질을 중심으로 움직이지만, 프로젝트 일정이나 리소스 변화와 같은 외부 변수에도 유연하게 대응해야 합니다. 예정된 테스트가 제대로 수행되지 못하면, 단순한 오류 하나가 심각한 장애로 이어질 수 있기 때문입니다.결국 품질 리스크와 프로젝트 리스크는 각각 다른 성격을 갖고 있지만, 실제 현장에서는 서로 맞물려 작동하며 함께 관리되어야 합니다. QA는 이러한 두 리스크를 모두 인식하고 조율하는 핵심적인 역할을 맡고 있으며, 이를 체계적으로 관리하고 사전에 결함을 차단하기 위해 다양한 테스트 기법을 활용합니다. 테스트는 단순한 검증을 넘어, 품질과 안정성을 확보하기 위한 가장 실질적인 리스크 대응 도구입니다.소프트웨어 테스트 방법론에는 기능 테스트, 회귀 테스트, 경계값 분석, 탐색적 테스트, 성능 테스트 등이 있습니다. 이 중에서도 기능 테스트와 회귀 테스트는 가장 보편적으로 사용되고 필수적으로 수행되는 기법입니다.기능 테스트는
2025.07.11

좋아요

별로에요