개발자
안녕하세요, 백엔드 개발자를 꿈꾸고 있는 학생입니다. 사실 백엔드를 꿈꾸고 있지만, 지금까지 했던 프로젝트들은 모두 플러터와 파이어베이스를 이용해서 백엔드가 없다시피 구현했거나, 웹 프론트를 구현하고 백엔드부분은 js랑 php를 이용해서 마구잡이식으로 구현한 경험이 있고, spring boot로는 아주 간단한 토이프로젝트 하나를 여러 팀원들과 함께 진행한 경험뿐입니다. 그래서 정확히 백엔드 분야에 어떤 지식이 중요한지 알고싶습니다. 지금까지 스프링부트를 하면서 파악한 바로는 데이터베이스에서 데이터를 가져와 적절한 api로 프론트로 전송하는 분야라는 것인데, 백엔드 분야에서 더 좋은 기술자가 되려면 CS 지식이나, 클라우드와 서버 구축, 배포방식, 등등 더 중요히 알아야할 부분이 어떤 게 있는지 궁금합니다. 그리고 저는 사실 CS지식이나 하드웨어, 도커 같은 공부보다는 조금 더 재사용성과 가독성이 높은 코드를 짜거나 하는 등 코드 자체를 작성하는 일에 더 흥미가 있습니다. 그렇다면 프론트와 백 분야중 어떤 분야를 선택하는게 더 좋을지 궁금합니다. 감사합니다!
답변 7
인기 답변
좋은 개발자로 나아가기 위해서는 말씀하신 CS, 서버, 클라우드, CI/CD 외 Git, NoSQL, 보안, 테스트 등 다 중요한 부분인 것은 맞습니다. 다만, 아직 학생이시고 개발자를 꿈꾸면서 노력하시는 분께 이 모든 것을 다 갖추어야 한다고 말씀드리기는 좀 어렵네요. 작성자님의 고민 내용도 개발자가 되기 위해서는 공부해야할 것도 많은데 무엇을 해야할지 막막하고 막상 하려니 내용이 너무 어렵고 맞지 않는 부분이 있는 것 같아 고민하시는 것으로 보입니다. 다행이 코드를 작성하시는 일은 좋아하신다고 하니 우선 그 쪽에 집중해 보시기 바랍니다. Java, Spring, Database를 기반으로 한 다양한 구현을 해보시면서 다른 지식들은 연관된 작업이 진행될 경우 접하면서 조금씩 이해하는 방식으로 진행해보시면 어떨까합니다. 사실 Java, Spring, Database 만 제대로 깊게 알고 코드를 많이 작성해보고 말씀하신 코드의 재사용성과 가독성을 높이는 부분에서 본인의 관점을 명확하게 표현하고 어필할 수 있다면 신입 개발자로 시작자체는 얼마든지 가능할 것으로 생각합니다. 이후 부족한 부분은 경험하고 천천히 시간을 가지고 노력하면서 채워나가면 될 것 입니다.
인기 답변
실무에 들어갔을 때 체감하게 될거에요. 유저를 받기 시작하면서부터 생기는 수 많은 문제들을 해결하기 위한 배경지식이 이론지식이니까요. 예를 들자면 서비스가 어느정도 운영이 되어서 유저도 많이 생기고 데이터베이스에 자료도 많이 싸였을 때 서비스가 계속해서 느려저서 유저들이 불만을 토로할 때죠. 언젠가부터 코드만 가지고는 해결하기 어려운 시점이 옵니다. 운영체제와 네트워크, 데이터베이스 이론이 정말 중요합니다. 정말로....
인기 답변
CRUD만 한다면 왜 깊이가 필요한지 와닿지가 않을 수 있습니다. 클라우드 서버 회원가입하면 주는 무료 크레딧 받으셔서 클라우드 서버에 서비스 배포를 한번 해보시고요, nGrinder를 이용해서 트래픽을 많이 넣어보세요. 그리고 JMX 툴이나 핀포인트 같은 APM으로 모니터링 해보세요. 모니터링하시다 보면 무슨 말인지 모를 말들이 많이 나올텐데요, 그것을 읽는 것부터가 시작입니다. 왜 서버는 분명 트래픽을 엄청 받고 있는데 CPU사용률은 낮은가? 부터 시작해서 파헤칠게 많을 겁니다. 이것을 키워나가는 것부터가 CS의 중요성이고요. 추가적으로 하나 더 테스트해볼만한건 DB서버는 미국에 두고, WAS는 한국에 둔다음 성능테스트를 해보세요. 그럼 또 CS의 필요성을 느끼게 되실겁니다 :)
현우
한성대학교 컴퓨터공학 • 2024년 01월 25일
취준생 입장에서 이런게 궁금했는데 감사합니다
인기 답변
결국 나중으로 가게되면 전부 다 하게 되어 있습니다. CS지식이 부족한 상황에서 재사용성과 가독성이 높은 코드를 짜기 점점 어려울 것이고 도커를 모르고 CI/CD를 이해하기가 어려워 질 것 입니다. 결국은 다 연결되어 있는 것이기에 조금씩이나마 전체 그림을 파악하시는게 필요합니다.
인기 답변
백엔드와 프론트엔드에서 CS지식중요도를 따지기에는 소프트웨어 개발자라는 범주안에서는 상식에영역입니다. 중요도는 아주 높다고 할수 있습니다. 우리는 현대를 살아가면서 훌륭한 선배님들 덕분에 CS지식이 없이도 개발자라는 타이틀을 가질수 있게 된것 뿐입니다. 요리사을 예로들면 밀키트가 하나있습니다. 재료의 특성과 사용법을 모르는 요리사는 밀키트에 있는설명서대로만 요리를 만들수 있습니다. 반면 많은 재료의 특성과 사용법과 조리법을 알고있는 요리사라면 밀키트설명서에 있는 요리외에도 다양한 요리를 할 수 있을겁니다. 개발자에게 CS지식은 요리사에게 식재료의 요리법에대한 기반지식과 같습니다. CS지식이 없으면 다양한 응용이 불가하고, 개발자의 한계는 더욱 좁아집니다. 도구의 사용법만 익히는것도 중요합니다만 더 깊게 더 넓게 사용하고싶다면 결국 CS입니다. 훌륭한 선배님들덕분에 상식을 늦게배워도되는 환경에 감사하시고, 틈틈히 공부하시는걸 추천합니다. 쓰자면 한도끝도 없으니 이만하겠습니다;;;
백엔드는 철학의 문제입니다. 그리고 최종적으로 코딩은 영어로 하죠. 그러므로 영어 실력이 백엔드에게 가장 중요합니다. 여러 가지 철학적 인문학적 글을 영어로 읽어야 하니 더더욱 영어가 중요합니다. 그리고 위에 언급한 각종 내용은 다 서버 방식입니다. 서버리스 방식을 취하면 저런 문제를 극복할 수 있어요. 안 만나고 오직 개발에만 집중할 수 있죠.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2023년 10월 07일
백엔드 개발에는 다양한 기술과 지식이 요구됩니다. 보편적으로 중요하게 생각되는 몇 가지를 나열해보겠습니다: 1. 언어 및 프레임워크: Python, Java, Node.js 등의 언어와 Django, Spring Boot, Express 등의 프레임워크에 대한 탄탄한 이해가 필요합니다. 2. 데이터베이스 관리: SQL 또는 NoSQL 데이터베이스를 다룰 수 있는 능력은 필수입니다. 3. RESTful API 및 Microservices: 백엔드 서버와 클라이언트 간의 통신을 관리하는 방법을 알아야 합니다. 4. 클라우드 서비스: AWS, Azure, Google Cloud 등 클라우드 인프라를 이해하고 활용할 수 있는 능력도 중요합니다. 5. 컴퓨터 사이언스 기본 지식: 알고리즘, 자료구조, 네트워크 등의 CS 기본 지식은 효율적인 솔루션을 디자인하고 문제 해결에 있어 큰 도움이 됩니다. 6. 컨테이너화 및 배포: Docker, Kubernetes 이런 것들에 대한 이해와 더불어 CI/CD 파이프라인 구축 경험이 중요합니다. 코드 작성에 흥미가 있다고 하셨는데, 그러한 관심사를 가지신다면 백엔드 개발이 상당히 적합한 분야일 수 있습니다. 특히 가독성 높은 코드를 작성하고자 하는 욕구는 유지보수 및 팀워크에서 큰 강점이 될 수 있습니다. 프론트엔드 개발도 매력적인 분야이며, 사용자 경험에 직접적인 영향을 주는 역할을 하기 때문에 크리에이티브한 측면을 좋아한다면 추천할 만합니다. 하지만 CS 지식이나 하드웨어 등에 대한 공부 보다는 코드 작성에 더 흥미가 있다고하셨으니, 백엔드 개발이 더욱 잘 맞을 것 같다는 생각이 듭니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!