전체 글 93

Dictionary vs HashSet – 비슷해 보이지만 목적이 다르다

Dictionary vs HashSet – 비슷해 보이지만 목적이 다르다개발하면서 이런 컬렉션들 자주 본다.var dict = new Dictionary();var set = new HashSet();둘 다 뭔가 Add(), Contains() 같은 메서드를 제공하고, 키 기반으로 쓰는 것처럼 보인다.그러다 보면 이런 의문이 생긴다. "둘 다 검색 빠르다며? 그럼 뭐가 다르고 왜 둘 다 있어야 해?"이번 챕터에선 Dictionary와 HashSet의 근본적인 차이와, 실무에서 어떤 상황에 어떤 걸 써야 할지 정확히 구분해보자.문제 상황: 키만 쓰고 싶은데 Dictionary까지 써야 할까?var tags = new Dictionary();tags["csharp"] = true;if (tags.Conta..

C# 2025.06.08

async vs await – 비동기 코딩, 진짜 이해하고 쓰고 있나?

async vs await – 비동기 코딩, 진짜 이해하고 쓰고 있나?처음 C#에서 비동기를 배울 때 이런 코드를 보게 된다.public async Task GetDataAsync(){ await Task.Delay(1000); return 42;}처음 보면 느낌이 좋다.오호~ 뭔가 최신스럽고, 깔끔하고, 빨라 보인다.근데 조금 지나면 이렇게 된다. async void를 남발함 await을 안 쓰고 async만 붙임 Task를 안 기다리고 .Result를 씀 데드락(deadlock)이 발생함 UI가 멈춘다 "async와 await이 뭐가 다른 건데?" "비동기라고 해서 썼는데 더 느린데?"이번 챕터에선 이 둘의 개념부터 실무 팁까지, 진짜로 정리해보자.문제 상황: 비동기로 했는데 ..

C# 2025.06.07

Nullable과 null 처리 전략 – null 때문에 또 터졌다고?

Nullable과 null 처리 전략 – null 때문에 또 터졌다고?null은 개발자의 천적이다.컴파일은 잘 되는데, 런타임에 갑자기 딱! "Object reference not set to an instance of an object."딱 보면 눈물 나는 그 에러…null이 뭔지도 안다고 생각했지만, C#은 여기서 끝이 아니다. null Nullable (int?, bool?) ??, ?., ??= "이걸 도대체 언제, 어떻게 쓰는 거냐" 싶다.이번 챕터에선 null과 Nullable을 실전 위주로 정리해보자.헷갈리는 부분은 예제로, 실무 전략은 표로 정리해준다.문제 상황: 분명 값 있다고 생각했는데, 왜 null이야?class User{ public string Name { get; ..

C# 2025.06.06

object vs dynamic vs var – 언제 뭘 써야 헷갈리지 않을까?

object vs dynamic vs var – 언제 뭘 써야 헷갈리지 않을까?C# 코드 짜다 보면 아래 셋 중에 뭐 써야 할지 헷갈릴 때가 있다.object something = ...;dynamic something = ...;var something = ...;전부 '뭔가를 담을 수 있다'는 느낌인데…똑같은 거 같으면서도 다르고, 다르다면서도 비슷하다. "object는 옛날부터 있던 거고, dynamic은 늦게 생긴 거고, var은 타입 추론 아닌가?"이 정도만 알고 있으면 실무에선 딱 사고 난다.이번 챕터에선 이 셋을 진짜 제대로 구분해보자.헷갈리는 개념, 예외 상황, 실무 기준 사용법까지 싹 정리해줄게.문제 상황: 자동완성도 안 뜨고, 컴파일 에러도 없고?dynamic x = "Hello";C..

C# 2025.06.06

값 타입 vs 참조 타입 – 구조체와 클래스, 뭐가 다른데?

value type vs reference type – 구조체랑 클래스, 뭐가 다른데?개발하다 보면 어느 순간 마주친다. "이거 struct로 만들까? class로 할까?"나도 그랬다.처음엔 뭐든 다 class로 만들었다.왜냐? struct는 잘 모르겠고, 그냥 new만 치면 class가 자동으로 뜨니까…근데 프로젝트가 커지고 퍼포먼스를 고민하기 시작하면, 진지하게 이 차이를 알아야 할 때가 온다.오늘은 이 차이를 눈에 쏙 들어오게 정리해보자.문제 상황: "분명 바꿨는데 값이 왜 안 바뀌지?"struct PointStruct{ public int X; public int Y;}class PointClass{ public int X; public int Y;}var ps1 = new..

C# 2025.06.05

ref, out, in - C# 파라미터 키워드 제대로 구분하자

ref, out, in - C# 파라미터 키워드 제대로 구분하자개발하다 보면 한 번쯤은 이런 코드를 마주친다.public void DoSomething(ref int value) { ... }public void DoSomething(out int result) { ... }public void DoSomething(in int input) { ... }처음 보면 다 비슷하게 생겼다. '결국 값을 전달하는 건데 ref, out, in 이게 도대체 뭐가 다른 건데?' 라는 생각이 들 수밖에 없다.심지어 StackOverflow나 구글에서 검색해도 다들 "ref는 이렇고 out은 저렇고..." 이론적인 설명만 한가득이다. 그런데 그걸 그대로 복붙하듯 외워봤자 실무에선 잘 써지지 않는다.이번 글에선 실제 ..

C# 2025.06.04

인터페이스 vs 추상 클래스, 진짜 차이가 뭔데?

인터페이스 vs 추상 클래스, 진짜 차이가 뭔데?개발 좀 하다 보면 누구나 한 번쯤은 이 고민에 부딪힌다. "이거 인터페이스로 뽑아야 하나? 아니면 그냥 추상 클래스로 가야 하나?"나도 그랬다. C#에 처음 발을 들였을 때, 팀 리더가 "여긴 I~~로 인터페이스 하나 만들고~"라고 말했는데 속으로는 "아니 그거 그냥 클래스 만들면 안되나…?"근데 이 차이를 모르면 나중에 구조 잡다가 '뒤틀린 설계의 늪'에 빠지기 딱 좋다.오늘은 그 차이를 진짜 현실적인 눈높이로 확실하게 정리해보자.📌 개념부터 간단하게 정리해보자인터페이스 (interface) 말 그대로 '약속'이다. 어떤 행위만 정의하고, 구현은 안 함. 여러 개를 동시에 구현할 수 있음.public interface IAnimal{ ..

C# 2025.06.03

개발자로 살아남기 Chapter 1.10. 비전공자, 전환 개발자도 살아남는 전략

📘 Chapter 1.10: 비전공자, 전환 개발자도 살아남는 전략💭 Intro – "나도 개발자로 살아남을 수 있을까?""개발은 전공자들만 잘하는 거 아냐?""나는 나이도 있고, 비전공인데 과연 가능할까…"실제로 비전공 개발자, 전직 개발자, 30대 진입 개발자 엄청 많다.그리고 그 중 상당수가 실무에서 굉장히 잘하고 있다.왜?"기술"만이 능력이 아니라, "문제 해결력"과 "습득력", "소통"이 함께 작동하기 때문이다.오늘은 이걸 아주 구체적으로 뜯어보자.1️⃣ 겁먹지 말고, '강점'부터 세팅하자비전공자라고 해서 무조건 약점만 있는 건 아니다.반대로 다른 전공에서 가져온 강점이 있을 수 있다.전직 영업 → 커뮤니케이션, 고객 관점 이해전직 마케터 → UI/UX 감각, 분석력전직 디자이너 → 프론트엔..

개발자 2025.06.03

개발자로 살아남기 Chapter 1.9. 개발자로 10년, 20년 일하려면?

📘 Chapter 1.9: 개발자로 10년, 20년 일하려면?💭 Intro – '개발로 먹고살기', 그게 가능하긴 한가요?"개발자라는 직업이 안정적이다?""나도 10년, 20년 뒤에도 여전히 코딩하고 있을 수 있을까?"이런 고민, 한 번쯤 해봤을 거다.신입 때는 버그 하나 잡는 데 몇 시간을 쏟고도 기뻤고, 주말에도 사이드 프로젝트에 심취했던 열정이 있었지.근데 말이지… 몇 년 지나고 체력 떨어지면? 트렌드는 계속 바뀌고? 젊은 개발자들은 더 빠르게 성장하는데?마! 이게 진짜 현실이다."개발은 좋아하는데, 오래 할 수 있을까?" 이 질문의 답을 같이 찾아보자.1️⃣ 체력이 떨어지면 실력도 떨어진다실무 5년 차, 어느 날 갑자기 일하다가 머리가 멍~ 하더라.밤새 버그 잡고, 회의하고, 개발하고, ..

개발자 2025.06.03

개발자로 살아남기 Chapter 1.8. 코드리뷰, 협업, 커뮤니케이션의 기술

📘 Chapter 1.8: 코드리뷰, 협업, 커뮤니케이션의 기술🧠 Intro – 코드만 잘 짜면 끝일까?아니다. 절대 아니다.실력 좋은데도 팀에서 인정 못 받고 도태되는 사람들 특징이 뭔 줄 아나? 말 한마디로 팀 분위기 박살 내고 코드리뷰에서 꼰대처럼 굴고 본인만 이해하는 방식으로 일하고"내가 코드는 잘 짜는데 왜 이렇게 일이 힘들지?"→ 그건 실력이 아니라 커뮤니케이션이 부족해서다.📌 코드리뷰 – 기술보다 사람이 중요하다✅ 코드리뷰, 그거 "틀린 걸 찾기" 아니고 "같이 맞추기"다후배가 올린 PR을 봤다고 치자:if(user.Type == "Admin") { DoSomething();}이걸 보고 바로 이렇게 쓰면?❌ "이런 식으로 하시면 곤란합니다. 상수도 안 빼고, 이거 뭐하는 코드..

개발자 2025.05.31