공부? 어떻게하고 계신가요?

안녕하세요.
저는 다니던 회사는 1년전에 그만두고 이직을 준비중인 생각많은 개발자(8년차)입니다.

안타깝게도 제가 무엇을 하고 싶고 무엇이 부족한지를 회사를 그만둔 후에야 알게되었고
막상 뭘 해야하지? 라는 생각과 그럼 이걸 어떻게 하지?라는 생각이 들어 글을 남기게 되었습니다.

회사를 다니던 때는 첫 회사이기도 했고 아무것도? 모르던 때라
시키는 일만 정말 열심히 했었습니다.
그러다보니 어느 하나 ‘난 이게 전문이야!’라고 자신감있게 말할 수 있는게 없는 상황이 되었습니다.

  • 회사에서는 C++(MFC)을 시작으로 Delphi 조금, C#(Winform, .Net Framework, ASP.NET)을 주로 하였습니다.(제 담당은 아니었지만 ㅎㅎ Java(Spring Framework)도 유지보수 할수 있는 정도)
    하지만 연차가 쌓일 수록 코딩하는 업무보단 문서작성하는 업무가 늘어났고 점점 “개발”과는 거리가 멀어졌던것 같습니다.

물론 회사를 다니면서 혼자 따로 공부를 할 수 있긴 했겠지만.. 그때 당시에는 일이 너무 많아 아무 생각도 하지 못했었습니다.:sweat_smile:

그래서!! 지금이라도! 개인적 역량을 높여보고자! 이것저것 해보고는 있는데요.
매번 AI한테 물어보는것도 답은 아닌것 같고..
다른 분들은 무엇을 어떻게 하고 계신지 궁금합니다!!

참고로
저의 지금 목표는 응용프로그램 개발자에서 .Net 백엔드 개발자로 거듭나는 것입니다!!!
아래는 제가 정보를 습득하고 실습?적용?해보고 있는 내용입니다~

  • 책 구매: Clean Code, 실용주의 프로그래머, 토익책
  • 커뮤니티 가입: .Net Dev
  • 개인 프로젝트: .Net 8, ASP.NET Core Web API, EF Core, WPF
  • 기타 정보 콘텐츠: 요즘IT, 뉴닉

댓글 남겨주신거에 미리 감사드립니다 :grin:

9개의 좋아요

관계형 데이터베이스 필수 아닐까요?

3개의 좋아요

잘 되시기를 진심으로 응원합니다! 8년 동안 쌓아오신 C++, Delphi, Winform 경험은 백엔드의 복잡한 로직을 다루거나 성능을 최적화할 때 분명 남다른 밑거름이 될 것입니다.

개인적으로는 앞서 @leechw9 님께서 말씀해주신 RDBMS의 중요성에 더해, '상태 기반(Stateful)의 응용 프로그램’에서 '비상태 기반(Stateless)의 백엔드 환경’으로 사고를 확장하는 것이 가장 중요하다고 생각합니다. .NET 사용 여부와 무관하게 요즈음 백엔드 개발에서 필수로 숙지해야 할 항목들을 정리해 보았으니 참고가 되셨으면 합니다.

  • 비즈니스 도메인에 대한 이해: 어떤 분야(금융, 커머스, 제조 등)에서 개발하고 싶은지 파악하고 그 분야의 도메인 지식을 쌓는 것 (시니어에게는 기술만큼이나 중요한 역량입니다.)

  • 비상태성(Stateless) 메커니즘: 서버가 클라이언트의 상태를 보관하지 않고 확장성 있게 동작하는 원리 (JWT, Redis 활용 등)

  • 비동기(Async/Await) 프로그래밍: .NET 백엔드 성능의 핵심이며, 스레드 차단(Blocking) 없이 대량의 요청을 처리하는 방식

  • CQRS (명령 및 조회 책임 분리): 단순 CRUD를 넘어 복잡한 비즈니스 로직을 효율적으로 관리하기 위한 아키텍처 패턴

  • 메시지 큐(Message Queue) 기반 분산 처리: 시스템 간 결합도를 낮추고 동시 처리를 가능하게 하는 방식 (RabbitMQ, Kafka 등)

  • 인프라의 이해 (IaaS, PaaS, SaaS): 코드가 구동되는 환경의 차이를 이해하고 서비스 규모에 맞는 적절한 인프라를 선택하는 안목

  • 컨테이너(Docker, Podman) 환경: 배포의 표준이 된 컨테이너의 원리와 실제 운영 환경에 적용하는 방법 - 특히 애플리케이션을 컨테이너화한다는 것은 반 강제적으로 Stateless로 지향성을 잡아야 하기 때문에 VM과 컨테이너 간의 차이점을 학습하기에 좋습니다.

  • 데이터베이스 최적화: RDBMS의 인덱스 설계부터 실행 계획 분석까지, 백엔드의 병목을 해결하는 능력. 그리고 RDBMS에만 갇히지 않는 기술 선택 안목 (No-SQL, SQLite 등)도 중요합니다.

단순히 기술 스택을 늘리는 것보다, “왜 이 기술이 필요했는가?” 에 집중해서 개인 프로젝트를 진행해 보시면 면접에서도 훨씬 설득력 있는 답변을 하실 수 있을 거예요. 지금 사고 계신 책들과 .NET 프로젝트 구성은 아주 좋은 방향이라고 생각합니다.

조금 늦게 시작하신 만큼, 그동안의 연륜이 백엔드라는 새로운 그릇에 멋지게 담기길 응원하겠습니다!

(ps. .NET 8은 올해 가을에 EOS 될 예정입니다. 지금 학습을 하신다면 .NET 10이 적절한 선택지입니다.!)

7개의 좋아요

역량 강화가 취업이 목적이라면 .NET으로 한정하지 말고 전체적인 백엔드 실력을 높이는데 주력하면 좋습니다. :sweat_smile:

가상 면접 사례로 배우는 대규모 시스템 설계 기초 2 를 구매하면 브로마이드로 들어 있습니다. 매우 인상적이어서 집 책상 옆에도 붙여 놨는데요. .NET이라고 해도 이 그림에 나온 인프라는 전부 사용할 줄 알아야 겠더라고요.

https://product.kyobobook.co.kr/detail/S000001033116

https://product.kyobobook.co.kr/detail/S000211656186

5개의 좋아요

헐…저는 이 책 전자책으로 1 2 다샀는데 책에는 이런게 있었군요;

3개의 좋아요

관계형 데이터베이스는 DBA만큼 다룰수 있는건 아니지만
쿼리나 실행계획 분석도 어느정도 할 줄 알아요 :grinning_face:

그런데 이게 실무를 떠나니까 점점 기억이 흐릿해지는것이..
DB종류를 떠나.. 꾸준히 하지 않으면 까먹게 되나봐요..

1개의 좋아요

감사합니다!!
”사고를 확장하는 것”과 알려주신 항목들 찾아보고 숙지하겠습니다!
(아! 그리고 .NET 8을 10으로 작업해보겠습니다~~)

혹시 저런 정보를 인터넷에서 찾아보시는 지 유튜브를 보시는지 책을 보시는지 궁금합니다!
AI에게 알려줘라고 하기에는 뜬구름만 잡는것 같고 어디까지 물어봐야 할지도 막막해서요.

1개의 좋아요

.NET은 크로스 플랫폼을 지향하면서 네이티브 기술도 지향하기 때문에 기술이 사용되는 분야가 무수히 많습니다.

따라서 각 여러 산업군들에 종사하시는 여러 개발자 분들, 굳이 .NET 개발자가 아니더라도 그런분들을 통해 키워드를 유입하고 공부해 나가는 것이 중요한 것 같습니다.

아마도 클라우드던 네이티브던 웹서비스들이 구직자리도 많고, 여러 산업에서 사용되기 때문에 아키텍쳐적으로 발전된 부분들이 많이 있습니다. 하지만 대체될 수 없는 네이티브 어플리케이션의 영역도 분명히 있고, 시간이 한정되어져 있기에 이런 모든 것들을 다 찍먹을 하는데에도 한계가 있습니다.

위에서 언급되지 않은 내용 중에 없는 내용은 바이브코딩이 있는데, 스킬업 중에는 AI 코드 어시스턴트를 잘 사용하는 능력 또한 .NET을 깊게 아는 것만큼 중요하다고 생각합니다. 어쨌든 현재 시점에 맞게 스킬 셋을 익혀야 구직에 유리하기 때문입니다.

바이브코딩을 언급하는 이유는 단순히 AI가 질의 응답기가 아니라 AI를 얼마나 잘쓰냐에 따라 코드 품질이 달라지기 때문이고, 아마도 대부분의 개발자들이 AI 경험이 안좋은 이유는 AI를 잘 못쓰기 때문일 거라 생각합니다. 물론 대체할 수 없는 영역도 분명 있겠죠.

따라서 제 결론은,

  1. 특정 산업군에서 근무하고 싶으신게 아니라면 여러 직장인 개발자들과 네트워킹하기
  2. 그 산업군에 대한 개요를 듣고 .NET으로 바이브코딩하기

입니다. 그리고 이런 부분들은 당장 해결될 수 없는 영역이기 때문에 네트워킹에 대한 시간이 누적될 수록 증가할 것이므로 스킬업을 할 수 없는 상황에라도 여러 사람과 네트워킹하시면 좋을 것 같습니다.

3개의 좋아요

ERD(Entity Relationship Diagram)를 업무에 맞게 설계하고 그리고 변경해보는 것이 중요하다고 생각합니다. 이것이 기본적인 프로그램 성능 문제를 해결하기 때문입니다.

2개의 좋아요

오.. 자세한듯 심플한 브로마이드 좋네요 :+1:
(시스템의 정석 같은 느낌이에요)

역시 개발자라고 해서 코딩만 할 줄 알면 안되는게 맞나봐요.
가끔 코딩하는 일 말고 다른 업무를 할때면..
이게 맞나..라는 생각을 가끔했었는데, 넓게 볼 줄 아는 개발자가 되어야겠어요!!
(회사에서 진행하는 여러 사업 덕분에 신규 시스템 설계부터 구축.운영까지 모두 경험해봤거든요..
H/W 스펙을 어떻게 할건지 생각하고 네트워크 구성이 어떻게 되어 있으니 우리 시스템은 어느 망에 있어야 하고.. 등등 같은.. 지금 생각해보면 다 앞날을 위한 밑거름 이였나봐요ㅎㅎ)

인프라를 전부 사용해서 백엔드 마스터가 되는 그날까지..
백엔드를 넘어 개발 전문가가 되는 그날까지..:smiling_face_with_sunglasses:

2개의 좋아요

딱 이거다 정해서 말씀드리기는 어렵지만, geeknews나 hackernews가 좋은 소스가 되는것같습니다. 그리고 @al6uiz 님, @dimohy 님께서 매주 닷넷데브에 올려주시는 주간 시리즈, 그리고 격주 닷넷 팟캐스트도 구독하시면서 인사이트를 얻으시면 좋겠습니다. :grinning_face_with_smiling_eyes:

5개의 좋아요

오오.. 좋은 책처럼 보여요!

2개의 좋아요

저는 Java/Spring 7년차 개발자인데 살려고 하다보니 C# .NET 백엔드 개발을 이번에 하게 되었어요.

JUnit5, Spring, JPA 등과 비교해보면서 닷넷 쪽을 학습해보는데 재미가 있더라구요.

특히나 ms 공식문서가 생각보다 상세하게 잘 되어 있고,Notebook LM에 링크 학습 시켜서 오디오 팟캐스트 들으니 러닝 커브도 예전만큼 높진 않다는 느낌이 들었습니다.

개인적으로 자신감이 조금 생긴게 공백기간동안 설계, 테스트, 리팩터링 역량을 집중적으로 익히고 난 다음이었던거 같아요.이때부터 언어나 프레임워크가 바껴도 비슷하게 적용시킬 수 있는 부분이나 각 특성이 보이니 요즘은 개발/유지보수 하는게 괴롭거나 하진 않은거 같습니다.

지방러라서 새벽에 6시 차타고 서울에 세미나 듣기도 하는데, 환경을 바꿀 수 없기 때문에 자기계발을 지속적으로 하다보면 뒤돌아봤을때 성장했다는걸 알 수 있지 않을까 라는 생각도 요즘합니다.

많은 도전과 경험을 통해 길을 찾으시길 바랍니다.

3개의 좋아요

와… 진짜 멋지십니다!!

저는 아직 스스로에 대한 확신이 부족해서 그런지
공부하면서도 이게 맞나? 싶은 생각이 자주 들더라고요 :sweat_smile:
그래서 괜히 더 주저하게 되는 것 같고요.

그래도 계속 정진하시는 모습 보면서 자극받고 배웠습니다!

그리고 말씀해주신 Notebook LM은 처음 알게 됐는데,
한번 잘 활용해보겠습니다!

좋은 말씀 감사합니다 :slightly_smiling_face:

1개의 좋아요

종합: GeeksForGeeks(System-Design, software-engineering, DSA etc)

System-Design: ByteByteGo 주니어
책 : 전자도서관(국회전자도서관, 서울시 전자도서관, 서울교육청전자도서관, 강남구전자도서관) 없을시 교재구입
필요한 부분들은 유튜브 또는 강의 봅니다.

추가적으로 저같은경우 옵시디언(PKM = ZettelKasten + Para)이랑 Gemini Cli로 공부한거 정리 해놓으니 블로그나 옵시디언(노션)으로 정리해놓는걸 추천합니다.