본문 바로가기

전체 글23

1-2 소프트웨어 개발의 이해를 돕기 위한 비유 책에서 전달하는 핵심 교훈과 지식 이 챕터의 핵심 교훈은 "소프트웨어 개발이라는 추상적이고 복잡한 활동을, 우리가 이미 잘 아는 구체적인 개념에 빗대어 생각함으로써 더 깊이 이해하고 실수를 줄일 수 있다"는 것입니다.마치 눈에 보이지 않는 '공기'의 흐름을 이해하기 위해 '물의 흐름'에 비유하는 것과 같습니다. 공기는 눈에 보이지 않아 직관적으로 파악하기 어렵지만, 물의 흐름을 떠올리면 압력이 높은 곳에서 낮은 곳으로 흐르고, 장애물을 만나면 소용돌이가 생긴다는 사실을 쉽게 이해할 수 있죠. 소프트웨어 개발도 이와 같습니다. 코드, 아키텍처, 프로세스는 눈에 보이지 않는 추상적인 개념이라 다루기 어렵기 때문에, 적절한 '비유'라는 정신적 모델을 통해 그 본질을 파악하자는 것입니다.1. 비유는 '나침반'이.. 2025. 8. 12.
데이터 마이그레이션 전환 검증 전략 데이터 마이그레이션 검증 전략: 역공학적 접근과 체크리스트'역공학' 기반의 데이터 전환 검증 전략: 개발자는 단순히 검증자에 머무르지 않고, 숨겨진 규칙을 파헤치는 데이터 탐정이자 시스템의 취약점을 찾아내는 품질 보증 전문가가 되어야 합니다. 안전한 데이터 이관을 위해선 AS-IS 데이터와 TO-BE 시스템을 역공학적으로 분석하여 문제가 될 부분을 선제적으로 찾아내고 조치해야 합니다. 목표 : 데이터 정합성 최우선데이터 마이그레이션 검증의 궁극적인 목표는 데이터 정합성을 유지하고 데이터 유실을 방지하는 것입니다. 위의 단계별 접근법과 체크리스트를 따르면 이러한 목표에 한 걸음 다가설 수 있습니다. 발견된 문제는 적극적으로 해결 방안을 문서화하고, 이해관계자와 소통하여 정책적 결정 사항까지 끌어내세요. 철.. 2025. 8. 3.
가상 머신(VM)이 느린 이유 VDI, 가상머신, 가상망을 제대로 알아야 보이는 성능 차이의 원인🧐 시작은 이렇게: “PC는 새건데, 프로그램은 왜 이래?”개발자 A는 집에서 최신 윈도우 11 PC로 프로그램을 실행했을 때 쌩쌩 잘 돌아갔습니다. 하지만 같은 프로그램을 회사에서 실행해보면 터미널을 열 때도, 마우스 클릭도 버벅댑니다.팀원이 말합니다:“그건 가상머신 때문이야.”하지만 단순히 "느리다"는 설명만으로는 부족하죠. 왜 느린지, 정확히 어디서 느려지는지, 그리고 내가 뭘 할 수 있는지 알아야 합니다.📌 가상환경 구성요소: VDI, 가상머신, 가상망의 차이점🖥️ VDI (Virtual Desktop Infrastructure):물리 PC 대신 가상 데스크톱을 서버에 만들어 놓고 원격으로 접속하는 구조우리가 일반적으로 "원격.. 2025. 7. 29.
HTTPS 호출 시 "기본 연결이 닫혔습니다" 왜 이 문제를 다루게 되었는가?최근 프로젝트에서 ASP + VBScript 기반 시스템에서 외부 API를 호출해야 하는 상황이 있었습니다.이때 개인 정보를 URL 파라미터로 넘기기 위해, 다음과 같은 암호화 절차를 따랐습니다:AES 암호화 → Base64 인코딩 → URL 인코딩 → HTTPS 호출그런데 문제는, IE에서 HTTPS URL을 호출하면 "기본 연결이 닫혔습니다"라는 에러 메시지가 뜬다는 점이었습니다.문제 발생: HTTPS 요청 시 연결 끊김 오류증상호출 코드에서 .Send() 실행 시 다음과 같은 오류:기본 연결이 닫혔습니다. 보내기에서 오류가 발생했습니다. 동일 URL을 크롬에서 붙여넣으면 정상 동작IE에서만 "웹페이지를 표시할 수 없습니다" 오류 발생문제 원인 분석문제를 해결하기 위해 .. 2025. 6. 27.
인코딩(Encoding)이란? 인코딩이란 정보를 특정 형식으로 변환하는 과정입니다. 예를 들어 컴퓨터가 이해하거나 저장하거나 전송할 수 있도록 문자, 이미지, 소리 등의 데이터를 이진수(0과 1)로 변환하는 작업이라고 할 수 있습니다.왜 인코딩이 필요한가?컴퓨터는 오직 0과 1만 이해합니다.→ 사람이 쓰는 문자, 그림, 소리 등을 처리하려면 이진수로 바꿔줘야 합니다.데이터 전송 시 규칙이 필요합니다.→ 네트워크에서 한쪽에서 보낸 데이터를 다른 쪽에서 제대로 해석하려면, 양쪽이 동일한 인코딩 방식을 써야 합니다.인코딩의 실제 예시데이터 유형인코딩 종류설명문자UTF-8, EUC-KR, ASCII한글, 영어 등을 이진수로 표현이미지JPEG, PNG, BMP이미지 데이터를 압축 또는 변환오디오MP3, WAV, AAC소리 데이터를 이진수로 압.. 2025. 6. 6.
ADT(추상 데이터 타입)란 무엇인가? 우리가 실무에서 소프트웨어를 개발하다 보면 "이 기능을 재사용할 수 있게 만들자", "내부 구현은 감추고 외부에는 필요한 기능만 제공하자"는 말을 자주 듣게 됩니다. 이런 설계 철학의 중심에는 바로 ADT (Abstract Data Type, 추상 데이터 타입)가 있습니다.이번 글에서는 ADT의 개념과 실무에서의 활용 방식, 그리고 C#에서의 구현 예시까지 자세히 살펴보겠습니다.1. ADT란?ADT (Abstract Data Type)는 이름 그대로 "추상적인 데이터 타입"을 말합니다.즉, 어떤 데이터와 그 데이터를 다루는 일련의 연산들을 묶어 하나의 타입처럼 정의하고, 외부에서는 이 연산들을 통해서만 데이터를 접근하도록 만드는 방식입니다.예를 들어, 선풍기의 전원 버튼, 회전 버튼, 풍속 조절 버튼만을.. 2025. 6. 1.