C# 자기계발 방법... 조언 좀 부탁드려요.

안녕하세요.

제가 2년 전 신입으로 입사하면서 POS 개발 및 운영 업무로 처음 C#을 접하게 되었습니다.
기본적인 개발이나 운영은 C#이 객체지향언어다 보니 JAVA와 비슷해서 간단한 개발은 진행을 하고 있었으나, 이제는 뭔가 이 업무를 하는 수준이 아닌, 좀 더 한 발자국 나아가고 싶습니다. 제가 운영하는 POS가 오래되어서 최신 트렌드에 많이 뒤떨어져 있는 느낌도 들구요. (현재… 닷넷 2.0)

그래서 C#을 좀 더 공부를 해보려고 하는데, 제가 해본 C#은 닷넷2.0이라 정보가… 너무 부족합니다 ㅠㅠ
인터넷에도 정보가 많이 없구요… ㅠ

책을 추천해주셔도 좋고, 클론코딩을 해볼만한 것이 있으면 그것도 추천해주셔도 좋고, 만들만한게 있다면 그것도 추천해주셔도 좋습니다. 이제는 정체된 개발자를 좀 벗어나보고 싶습니다.

감사합니다 ㅠ

좋아요 1

개발업무도 회사일이라 업계의 특성을 타게 되어있습니다.
고객은 소프트웨어적으로 새로 익히고, 변화되는 것을 좋아하지 않습니다.
불안정하다고 생각하기 때문일텐데요.
물론 B2B라면 변화를 좋아하는 고객일 수 있습니다.
하지만 POS는 B2B긴 하지만 사용자가 불특정 다수라서 PC사양도 엄청나게 후질 수 있고, 새로 업데이트된 기능이 있어도 사용하지 않고, 오히려 바뀌는 걸 싫어할 수 있습니다.

응용프로그램을 기본적으로 안바뀌고 잘 돌아가게만 하는 것이 목적인 곳이 많습니다.
POS업계가 대표적인 그런 곳인데요.
POS가 정말 소프트웨어적으로 어려움의 끝판왕 소프트웨어인 것은 자명합니다.
그렇지만 그 특성상 신기술을 자주 쓸 수 없습니다.
KIOSK도 분야에 따라 마찬가지 일거라 생각합니다.
저도 POS 업계를 1년 반정도 경험했습니다.
제가 경험했던 POS는 DB와 POS 프로그램, 서버 달랑 3가지로 구성되어 있었습니다.
요즘 유행하는 Redis, Docker, RabbitMQ 이런거는 눈을 씻고 찾아볼 수가 없었습니다.
왜냐하면 필요가 없으니까요.

PC 하나에서만 돌아가는 프로그램이 커널을 건드리고, 장비를 후킹하는 수준의 고난도 프로그램이라면 그 자체로 하드웨어적인 제어요소를 배우는 맛이 있겠지만, 요즘은 고성능 하드웨어가 과거에 비해 값싼 가격으로 보급되어 소프트웨어적으로 대규모 처리를 하는 것이 유행입니다.

따라서 대규모 트래픽이 집중되는 서비스가 아니면 기술적 향상은 제 생각에는 힘들 것 같습니다.
이용자가 1명이라면 막 개발해도 잘 돌 것입니다.
거기다 유지보수를 나만하는 SI 프로젝트라면 아키텍쳐도 필요없고 그냥 내가 알아보게만 잘 짜면됩니다.
하지만 대규모 프로세스는 혼자선 처리할 수 없기에 팀이 필요하고, 팀원 간 소통이 필요하고, 팀의 정책이 필요합니다.
여기서 오는 훈련이 있습니다.
거기에 제한된 리소스로 대규모 처리를 해야하다보니 반드시 분산처리 기술이 들어갑니다.
이것 역시 기술의 발전을 가져옵니다.

그러니까 업계를 옮겨보시는 것을 추천드립니다.

이거 한 번 읽어보세요.

좋아요 4

@Vincent 님 글에 공감합니다. 회사에서 필요로 하는 기술은 빠르게 습득할 수 있는 가장 강한 자기계발의 원동력이 되거든요.

회사이직이 힘드신 경우 개인 프로젝트를 진행해보시길 권합니다. 언어를 그냥 배우는 것보다 목표를 정하고 그것을 달성하기 위해 언어를 습득하는것이 훨씬 효율적입니다.

이때 본인이 얻고자 하는 기술을 최대한 상세히 기록 하고 시작하는것이 효율적입니다.

좋아요 3

공부하고 싶은 개발 분야가 무엇일지 선택하세요.

.NET (C#) 이 커버할 수 있는 개발 분야가 너무 넓어, 한번에 전부 다 하실 수가 없습니다.
따라서 하나를 선택하여 공부해야 합니다. 하나를 선택한다고 하여 기초가 다르지 않습니다.
당연히 설계와 C# 언어, .NET 설계 이해, 테스트 구현 등은 어느 분야를 선택하든 하게 됩니다. 그러니 너무 고민하지 말고 고르세요.

영어를 공부하세요.

.NET 은 MS 에서 제공하는 자료가 방대합니다. 그런데 대체로 번역이 빈약할 때가 많습니다. 왜냐하면 문서는 지속적으로 작성되는데 반해, 번역 속도가 따라가지 못하기 때문입니다. 따라서 영어로 된 MS 문서를 편하게 읽을 수 있어야 좋습니다.

.NET documentation 를 찬찬히 읽어보세요.

내용이 방대하니 한번에 읽고 한번에 이해하길 기대하는 건 무리입니다. 제가 PDF 로 다운로드받아서 제본까지 해서 처음부터 끝까지 읽어보는 걸 해봤는데, 개발하면서 필요한 문서만 꾸준히 읽는게 효율이 좋았습니다.

C# docs를 찬찬히 읽어보세요.

위와 마찬가지입니다.

유명한 .NET 개발자 블로그 글을 꾸준히 읽으세요.

일단 Exploring .NET 6 (andrewlock.net) andrewlock 님 블로그를 추천합니다. 구글 검색해보면서 좋은 글을 꾸준히 올리는 블로그를 찾아 RSS 피드를 구독하고 매일 출 퇴근할 때 읽어보세요.

학습한 내용 정리하여 기록하고 공유하세요.

개발 학습이라는 게 바로 쓰지 않으면 체득할 수 없어 잊어버리기 마련입니다. 그러니 기록하세요. 잊어버리지 않도록 그리고 다시 찾아볼 수 있도록.

소프트웨어 엔지니어링 을 학습하세요.

소프트웨어는 설계와 구현, 테스트, 마지막으로 유지보수입니다. 현업을 하시니 아시겠지만 구현이 급할 수록 설계가 나빠지고, 설계가 나쁘니 테스트하기 어려워지고, 테스트를 하지 않으니 리팩토링하기 어려워 유지보수할 수 없게 됩니다.

에이콘 출판사에서 출판한 소프트웨어 엔지니어링 관련 도서를 읽으세요.
클린 아키텍처 책부터 시작하시면 됩니다.

개발하고 구현하세요.

배운 모든 걸 활용해 구현하여 체득하세요. 책만 읽어서는 개발자가 성장할 수 없습니다.

좋아요 5

넵 조언 감사합니다.

좋아요 1

조언 감사합니다 !

좋아요 1

결론은 이직! >ㅁ<b

좋아요 1