본문 바로가기

전체 글

(434)
2026-01-03 : 입사 6개월차, 첫 회고 1. 3줄 요약2025년 6월, 첫 직장에 입사했다.기술 스택은 C#과 .NETCore 였다.6개월 동안 코드도 짜고, 사람도 만나고, 전체 작업도 날려봤다.2. 처음 적응기의 난장판입사하자마자 제일 먼저 맞닥뜨린 건 개발 환경이었다.폐쇄망 + VDI 조합이었고, 인터넷도 제대로 못 쓰고,로컬에서 복사 붙여넣기도 막혀 있고, 프로그램도 거의 못 깔다시피 했다.세팅만 하는 데 거의 3일이 걸렸다.그다음은 협업 툴 적응.메신저, 티켓, 깃 플로우 다 처음이었다.그 와중에 전체 작업을 날려먹기도 했다.신입의 생존기1 : 푸시 한 번으로 메인 브랜치를 밀어버린 날3. 실무에서 배운 진짜 기술들실무에서 느낀 건,기술을 “알고 있다”는 감각이랑,“진짜로 쓸 줄 안다”는 건 전혀 다르다는 것이었다.예를 들어, AP..
신입의 생존기1 : 푸시 한 번으로 메인 브랜치를 밀어버린 날 입사 두 달쯤 됐을 때, 실무라는 걸 처음 제대로 체감했다.C#과 .NET 기반 백엔드였고, 프로젝트 규모는 꽤 컸다.그보다도 개발 환경이 낯설었다. 회사는 폐쇄망이고, 인터넷은 VDI 가상PC를 통해서만 쓸 수 있었다.인터넷은 막혀 있고, 복사도 제한되고, 프로그램 설치도 거의 안 된다.이건 단순히 불편한 걸 넘어서,막히는 순간 구글이나 AI 없이 혼자 해결해야 한다는 얘기였다.적응하는 데 시간이 꽤 걸렸다.그 와중에 내 브랜치가 꼬였다.입사 전엔 깃을 꽤 쓴다고 생각했지만,그건 그냥 혼자 쓰거나 소규모 협업 정도였고, 문제없이 흘러가는 상황에서의 깃이었다.회사에선 달랐다.브랜치 하나에 여러 명이 엮여 있었고,메인 브랜치는 말 그대로 다 같이 쓰는 흐름이었다. 당시 내 브랜치에서 충돌이 생겼고,그때, ..
record 클래스 1. record란?자바 14부터 도입된 불변(immutable) 데이터 클래스DTO, VO, Response 등 값을 담는 용도에 적합getter, toString(), equals(), hashCode() 등 자동 생성public record Person(String name, int age) {}자동으로 아래 코드가 생성된다:public final class Person { private final String name; private final int age; public Person(String name, int age) { ... } public String name() { return name; } public int age() { return age; } p..
Azure Storage + ASP.NET Core 8 파일 관리 API 구축하기 (로컬 + Emulator 환경) Azure Storage + ASP.NET Core 8 파일 관리 API 구축하기 (로컬 + Emulator 환경)최근 진행한 실습 기록을 정리한다. 목표는 다음과 같다.• Azure Storage Emulator(Azurite) 기반 로컬 개발• Azure Blob, Fileshare 업로드/다운로드 API• MSSQL DB에 메타데이터 저장• 배포 모드에서는 DB 저장만 수행• .NET 8 Web API + 콘솔 클라이언트 개발아래는 단계별로 진행한 내용과, 검색 키워드 예시와 구현 힌트를 정리한 글이다.⸻1. Azure Storage 개발 환경 준비Azurite 설치로컬에서 Azure Blob/Fileshare를 테스트하기 위해 Azurite를 설치했다. Node.js가 있다면 아래 명령어로 간단히..
CDN 1-1. Azure Storage Explorer 설치목표: Azure Storage 계정/Emulator 연결 관리Azure Storage Explorer download설치 후 할 일 • Azure 계정 로그인 • Emulator 연결해서 컨테이너 생성/확인 연습힌트 • “Connect to Azure Storage Emulator from Storage Explorer” 로 검색하면 Emulator 연동법 나옴1-2. Azure Storage Emulator(Azurite) 설치목표: 로컬에서 Blob, Fileshare 에뮬레이션구글 검색 키워드Azurite Azure Storage Emulator install설치법 예시 • npm 사용:npm install -g azuriteazurite • ..
Razor 기본 문법 정리 ControllerView에 데이터를 전달하는 방법 2가지:ViewData["키"] = 값 : 뷰에서 @ViewData["키"]return View(객체) : 뷰 상단에 @model 선언 후 @Model로 접근 View (Test.cshtml) switch문 (Razor에서도 C# 그대로 사용 가능) Model 출력문법 요약 @model뷰에 전달된 모델의 타입 선언@model List@{}코드 블록@{ var x = 1; }@:순수 텍스트 출력@:hello@@@ 문자 출력@@abc.com@ViewData["key"]ViewData 사용@ViewData["MyMsg"]@Model전달받은 모델 객체 접근@Model.Count@foreach반복문@foreach (var x in Model)@switch조건 ..
Razor- ViewBag ViewBag이란?컨트롤러 → 뷰로 데이터 전달할 때 사용하는 dynamic 객체타입 지정 없이 .속성이름으로 자유롭게 설정 가능 사용법 특징타입: dynamic (컴파일 시 타입 체크 X)선언: ViewBag.속성 = 값사용: @ViewBag.속성Razor에서 바로 사용 가능ViewBag vs ViewData vs Model항목 ViewBag ViewData Model타입dynamicDictionary강력한 타입 (class/DTO)선언ViewBag.NameViewData["Name"]Model.Name장점코드 짧고 편함오래된 방식과 호환IntelliSense, 타입 안정성단점오타 잡기 어려움문자열 키라 실수 가능ViewModel 필요 사용 추천 상황간단한 값 전달 (예: 페이지 제목, 메시지)임시 데..
Razor : C#과 HTML을 함께 쓰는 뷰 템플릿 웹 개발을 하다 보면 HTML 안에서 동적으로 데이터를 보여줘야 할 일이 많다. ASP.NET에서는 이를 위해 Razor 문법을 사용한다. Razor는 C# 코드와 HTML을 자연스럽게 섞을 수 있도록 도와주는 뷰 템플릿 엔진이다.이번 글에서는 Razor 문법의 기본 개념과 함께 예제를 통해 어떻게 동작하는지 알아보자.Razor에서 @의 의미Razor 문법에서 가장 중요한 키워드는 @이다.@ 기호는 "여기부터 C# 코드야!"라고 Razor에게 알려주는 역할을 한다.간단한 예를 보자.현재 시간: @DateTime.Now위 코드는 HTML 태그 안에서 DateTime.Now라는 C# 속성의 값을 출력한다. 결과적으로는 다음과 같은 HTML로 렌더링된다.현재 시간: 2025-06-22 오후 9:34:00 코..