본문 바로가기
프로그래밍

프로그래밍 「 추천 편」코딩 그 이상: 프로젝트에서 Java 개발자의 일반적인 작업 목록

by grapedoukan 2023. 5. 30.
728x90

요즘 코딩이 대세입니다. 여기에 놀랄 일이 없습니다 : 그것은 잘 지불하고, 수요가 많으며, 집에서 편안하게 데리러 오기 쉽습니다. 그렇게 혼란스럽지 않다면 훌륭하게 들립니다.

소프트웨어 개발자는 이러한 모든 회의, 리뷰, 버그 수정, 문서화에 대해 계속 이야기합니다. 초보자로서 코더가 되는 것이 코드 작성에 관한 것이라고 생각했을 수도 있습니다. 글쎄요, 그것도 그렇지만 일반 개발자의 책임은 그 이상입니다. 그러나 당황하지 마십시오! 이 기사에서는 Java 개발자의 일상을 발견하게 될 것입니다. 그렇게 하면 하나가 되는 것이 당신의 골목에 있는지 알 수 있습니다.

프로젝트에서 Java 개발자의 일반적인 작업을 확인해 보겠습니다. 그러나 우선, 기준을 설정하고 경험과 기술 세트의 관점에서 프로그래밍 세계에 있는 Java 개발자가 무엇인지 정의해 보겠습니다.

개발자의 계층 구조

다음 범주가 상당히 얼룩져 있다는 것은 말할 필요도 없습니다. 프로그래머로서 당신은 좁은 개발에서 고도로 숙련 된 전문가로서 중급 / 시니어가 될 수도 있고, T 자형 전문가 (다른 분야의 기술을 가진)가 될 수도 있습니다. 그래도 일반적인 규칙을 아는 것이 좋습니다.

레벨 1: 주니어 개발자

주니어 직책은 Java 개발자로서의 여정의 시작인 디딤돌입니다. 경력의 그 단계에서 당신은 아마도 상용 제품에 대해 작업하지 않았을 것입니다.

주니어로서 사소한 버그를 수정하고 기존 기능을 작업하게 됩니다. 회사는 또한 귀하의 멘토 역할을 할 선임 개발자를 귀하에게 연결할 가능성이 있습니다. 멘토는 모든 질문, 우려 사항 및 혼란을 해결하는 사람이 될 것입니다. 이것이 실제 일보다 공부처럼 들린다고 생각한다면 맞을 것입니다. 실제로 출시된 제품에 대한 주니어 개발자의 발자국은 최소화됩니다. 그렇다고 해서 책임을 심각하게 받아들이지 말아야 한다는 의미는 아닙니다! 이 수준에서 좋은 성과를 내고 할 수 있다는 태도를 보여주면 곧 중간 개발자가 될 것입니다!

레벨 2: 중간 개발자

제목에서 알 수 있듯이 중간 개발자는 주니어와 시니어의 중간입니다. 그들은 우둔한 녹색 뿔도 아니고 쳐다보고 문제를 해결할 수 있는 코드 닌자도 아닙니다. 주니어는 회사에서 사용하는 프레임워크와 도구(구어체로 "스택"이라고 함)의 숙달을 보여주고 멘토의 지속적인 감독 없이 중소 규모의 작업을 독립적으로 완료할 수 있을 만큼 충분히 유능하다는 것을 보여주면 중간이 됩니다. 탐나는 승진을 얻는 데 얼마나 걸릴지는 측정하기 어렵습니다 - 그것은 모두 당신의 목표와 회사의 기준에 달려 있습니다.

언제 중간이 되든 책임은 커지고 손을 잡는 일은 줄어들 것입니다. 테스트 작성, 문서 유지 관리, 기존 코드 반복, 문제에 대한 효율적인 솔루션을 고안하기 위해 주도권을 잡고, 때로는 후배 동료를 멘토링하는 것 - 이것들은 당신이 성취해야 할 많은 새로운 기대 중 일부입니다. 축하합니다, 당신은 이제 팀의 본격적인 구성원입니다!

레벨 3: 선임 개발자

시니어 개발자는 프로젝트의 기능과 범위를 정의합니다. 그들은 항상 큰 그림 모드에서 작업을 보고 프로젝트에 중요한 기여를 합니다.

일반적으로 프로젝트의 범위와 프로그램의 모든 부분이 상호 연결되는 방식을 이해하기 때문에 선임 개발자는 몇 가지 고유한 책임을 맡게 됩니다. 여기에는 프로젝트 진행 상황을 고위 경영진 및 고객에게 보고하고, 소프트웨어 개발의 비즈니스 종료에 대해 논의하고, 비즈니스 및 개발 프로세스가 응집력 있게 작동하는지 확인하는 것이 포함됩니다.

개발자를 주니어, 미들 또는 시니어로 만드는 보편적인 인증은 없다는 점을 명심하십시오. 회사의 선배가 다른 곳에서 중간에 있을 수 있습니다. 그것은 모두 회사의 기준에 달려 있습니다. 이제 모든 Java 개발자가 공유하는 책임을 살펴보겠습니다.

Java 개발자의 일상

프로젝트에 대한 첫 날/몇 달 동안 주니어 개발자의 책임에 대해 깊이 파고들지 말고 약간의 노력을 기울이면 꽤 빨라질 수 있는 숙련된 Java 개발자의 일상 업무에 집중합시다. 이 할 일 목록은 방대하며 하드 스킬과 소프트 스킬이 필요합니다.

새로운 솔루션 설계

작업이 아무리 복잡하거나 사소하더라도 모든 솔루션은 설계 단계에서 시작됩니다. 코딩은 미리 정의된 솔루션이 없는 복잡한 논리적 문제에 관한 것입니다. 빠르고 효율적인 솔루션을 고안하는 것은 귀하에게 달려 있습니다. 느린 솔루션에 의존하거나 더 지능적으로 보이기 위해 이해하지 못하는 알고리즘을 복사하여 처음에는 비틀거릴 수 있습니다. 당신은 균형을 찾아야 할 것이고, 그것은 연습을 통해서만 올 수 있습니다. 열린 마음을 갖고 비판을 수용하는 한 실패해도 괜찮습니다. 완고함은 소프트웨어 개발자 지망생이 가질 수 있는 최악의 특성 중 하나입니다.

새 기능 작성

초기 솔루션을 정했다면 이제 현실로 만들 때입니다. 효율성은 코딩 세계에서 게임의 이름이며 워크플로도 예외는 아닙니다. 모든 소프트웨어 회사는 응용 프로그램을 사용하여 작업을 할당하고 진행 상황을 추적하며 가장 인기 있는 것은 JIRA입니다. 팀 리더는 대부분의 시간 동안 작업을 할당합니다. 시간 추정치도 마찬가지지만 더 유연한 시련입니다. 작업에 더 적은 시간이 소요된다고 생각되는 경우 추정치를 변경하는 것에 대해 논쟁할 수 있습니다.

그러한 "마감 기한"을 지키지 않더라도 너무 초조해하지 마십시오. 그것들은 이유 때문에 추정치라고 불리며, 더 많은 작업을 완료할수록 필요한 시간에 대한 평가가 더 좋아질 것입니다. 또한 작업을 표시한 후에는 작업이 완료되지 않습니다. 다음은 테스트, 코드 검토 및 잠재적인 재작성 프로세스입니다.

테스트 작성

이런. "내 PC에서는 모든 것이 잘 작동했습니다." 그러나 코드 리뷰어는 코드가 몇 가지 테스트에 실패했다고 지적합니다. 테스트? 예, 테스트입니다. 전에 썼어야 했다고. 나는 당신이하지 않았다는 것을 말하는 것이 아니라 많은 개발자들이 즐기지 않는 작업입니다. 따라서 그들은 가능한 한 자주 이러한 책임을 회피하려고 할 수 있습니다. 테스트 작성은 일상적인 집안일처럼 느껴질 수 있지만 프로그램이 원활하게 실행되도록 하는 데 필수적입니다. 상용 응용 프로그램은 방대하며 기능에 발생할 수 있는 모든 잠재적 실패 지점을 수동으로 확인하는 것은 불가능합니다. 따라서 테스트.

그러니 게으름을 피우지 말고 테스트를 작성하십시오.

버그 찾기 및 수정

새로운 기능을 작성하는 것이 개발자가해야 할 전부는 아닙니다. 버그를 수정하는 것(귀하 또는 다른 사람에 의해 발생)은 귀하가 씨름해야 하는 또 다른 일상적으로 할당된 작업입니다. 작동 방식은 다음과 같습니다. 품질 보증(QA) 엔지니어는 일련의 자동화된 테스트를 실행하여 코드에 버그가 있는지 확인합니다. 이러한 오류를 발견하면 JIRA에서 버그 설명 및 재현 단계를 사용하여 작업을 만듭니다. 그런 다음 할당된 개발자는 버그 이면의 근본 문제를 파악하고 수정을 시도하는 데 시간을 할애합니다.

소요 시간은 개발자의 기술, 코드의 해당 부분을 작성했는지 여부, 해당 버그의 모호성 등 여러 요인에 따라 달라집니다. 때로는 "누군가 세미콜론을 어딘가에 넣는 것을 잊었습니다"처럼 간단할 수 있습니다. 다른 경우에는 버그가 너무 파악하기 어려워 재현할 수 없기 때문에 티켓을 QA로 다시 보내는 것 외에 다른 옵션이 없을 수 있습니다. Java 세계의 다른 모든 것과 마찬가지로 - 짐작하셨겠지만 경험이 있으면 더 쉬워집니다.

코드 검토

선생님의 모든 발언에서 에세이가 붉게 빛나는 두려움을 기억하십니까? 맞춰봐, 이 느낌이 돌아왔다, 코딩 에디션! 예, 코드를 제출하면 감독자의 검토 없이 기본 분기로 푸시되지 않습니다. 일반적으로 코드 검토 도구를 사용하여 모든 문제를 함께 처리합니다.

강조 표시된 문제는 코드가 승인되기 전에 수정해야 하는 로직의 일부 외설적인 오류부터 보다 효율적인 솔루션에 대한 제안과 같이 중요하지 않은 오류에 이르기까지 다양할 수 있습니다. 그러나 후자의 의견에도 귀를 기울이는 것이 기술을 향상시키는 쉬운 방법이므로 현명할 것입니다.

코드 분석

누구나 알아볼 수 있는 손글씨를 가지고 있으며 코딩 스타일도 마찬가지입니다. 들여쓰기, 방법론 및 접근 방식이 혼합되어 정기적인 유지 관리가 필요한 아름다운 혼란에 휩싸입니다. 회사는 정기적인 코드 분석을 수행하여 코드의 일부를 살펴보고 단점과 개선 방법을 파악합니다. 일반적인 방법은 개발 프로세스가 끝날 때 코드를 검토하는 것입니다. 그 시점에서, 개발 팀은 처음보다해야 할 일에 대해 더 잘 알고 있습니다. 따라서 기존 코드가 기억에 남아 있는 동안 개선할 수 있습니다.

코드 리팩터링

리팩터링은 적용된 코드 분석과 같습니다. 상용 소프트웨어는 수년간 유지 관리하고 최신 상태로 유지할 수 있습니다. 개발자의 관행과 지식이 향상됨에 따라 오래된 코드가 현대 표준을 충족하지 못한다는 것을 깨닫게 됩니다. 리팩토링(refactoring)은 기존 코드의 작동 방식을 변경하지 않고 처음부터 다시 작성하는 프로세스입니다.

기본적으로 지저분하고 더러운 사무실 책상을 상상해보십시오. 리팩토링은 책상을 정리하는 것과 비슷합니다. 그것의 끝에, 그것은 매우 동일한 사무실 테이블이 될 것이지만, 탐색하기가 훨씬 쉽고 보기에 훨씬 더 즐겁습니다.

문서 작성

모든 회사가 테크니컬 라이터(제품의 기능 및 코드에 대한 문서를 만들고 유지 관리하는 직원)를 고용하는 것은 아닙니다. 이러한 시나리오에서는 프로젝트에 도입하는 모든 기능을 문서화해야 합니다. Confluence와 같은 도구를 사용하여 프로젝트 문서를 공동으로 공유하고 유지 관리할 수 있습니다.

가장 흥미진진한 노력은 아닐지 모르지만 앞으로는 이전 프로젝트에서 작업을 수행해야 할 때 감사할 것이며 프로젝트의 기능에 대한 간결한 설명을 갖게 될 것입니다. 마찬가지로, 새 프로젝트에 처음 배정될 때마다 많은 질문에 대한 답변이 포함되어 있으므로 문서를 확인하는 것이 가장 좋은 방법입니다.

다양한 회의에 참여

전통적으로 매일 아침은 스탠드업으로 시작합니다: 팀은 서클(또는 원격으로 작업하는 경우 Zoom 통화)에 모여 어제 한 일과 오늘 할 계획에 대해 이야기합니다. 스탠드업은 모든 사람에게 프로젝트 상태에 대한 최신 정보를 제공합니다. 또한 어떤 식으로든 작업의 우선 순위를 변경해야 하는지 여부에 대한 팀 리더의 결정을 간소화합니다.

하루 종일 회의 및 통화 횟수는 현재 작업과 연공서열에 따라 다릅니다. 특히 복잡한 버그를 재현하는 방법을 시연할 수 있도록 QA와 회의를 가질 수 있습니다. 선임 개발자인 경우 잠재적인 고용인과 기술 인터뷰를 진행하라는 요청을 받을 수 있습니다. 경험상 경력이 높아질수록 더 많은 회의를 하게 됩니다.

Java 개발자의 핵심 기술

위의 리소스 중 하나를 사용하게 되는지 여부에 관계없이 Java 개발자 지망생이 무기고에 보유해야 하는 핵심 기술에 대한 마지막 치트 시트가 있습니다.

기술력

1. 코어 자바:

  • 통사론
  • 컬렉션
  • 제네릭
  • 스트림
  • 다중 스레딩 및 serialization

2. 스프링 프레임워크:

  • 스프링 부트
  • 스프링 MVC
  • 봄 구름

3. 최대 절전 모드.

4. 테스트 도구:

  • 쥬닛
  • 모키토

5. API 및 라이브러리.

6. JVM 내부.

7. 디자인 패턴 및 건축 패턴.

8. DevOps 도구:

  • 젠킨스
  • 부두노동자
  • 쿠버네티스

9. IntelliJ 아이디어.

10. 힘내.

11. 빌드 도구:

  • 메이븐
  • 그라돌

12.SQL 및 데이터베이스:

13. 웹/앱 서버:

  • 수코양이
  • 제이보스

14. 웹 서비스:

  • 쉬다
  • 빅 JAX-WS
  • JAX-RS

15. 약간의 HTML, CSS, JavaScript.

소프트 스킬

1. 의사 소통 능력.

2. 배움에 열려 있습니다.

3. 팀워크.

4. 직업 윤리.

5. 대인 관계 기술.

Java 개발자가 되는 방법

할 일이 많은 것 같죠? 글쎄, 이러한 작업이 당신을 설득하지 않았다면, 당신은 아마 궁금해 할 것입니다 - 어떻게 자바 개발자가 될 수 있습니까? 수업 계획, 책, 가이드가 너무 많아서 하나만 고르기 어려울 수 있습니다. 걱정 마세요. 시작하는 데 지침으로 사용할 수 있는 몇 가지 자료를 준비했습니다.

책을 읽고 비디오를 보는 것은 항상 좋은 일이지만 코딩을 배우는 가장 좋은 방법은 코드를 많이 작성하는 것입니다. 그러니 웹에서 재미있는 연습을 하든 작은 응용 프로그램을 작성하든 무엇이든 연습을 게을리하지 마십시오!

1. 과정을 선택하여 Java 기초 지식을 확고히 하고 실습을 하십시오. 자신의 진도에 맞춰 학습할 수 있도록 온라인 소스 중에서 선택하는 것이 좋습니다.

  • CodeGym: 전문 지식 0에서 영웅 수준까지 Java에만 전념하는 게임화된 학습 과정입니다. 미래 지향적인 내러티브와 동기 부여 기능을 사용하여 계속해서 학습으로 돌아갑니다. 그러나 가장 강력한 점은 솔루션 작성, 코드 수정 또는 재 입력에 대한 수백 가지 작업을 통해 연습의 주요 플랫폼으로 선택 될 수 있다는 것입니다.
  • CodeCademy: 웹 개발, 프로그래밍, 컴퓨터 과학 및 데이터 과학 분야에서 무료 및 저렴한 코딩 수업을 제공하는 온라인 대화형 플랫폼입니다. 물론 Java 기본도 그 중 하나입니다. 인터페이스는 사용자 친화적이며 복잡성 수준은 코딩 초보자에게 적합합니다.

2. 잘 짜여진 이론을 잊지 마세요. 초보자를 위한 Java 자습서 읽기(게다가 무료임):

3. 전문 Java 관련 블로그 읽기:

4. 속도를 바꾸려면 YouTube에서 다음과 같은 Java 비디오를 시청하십시오.

5. 특정 질문을 할 수 있는 토론 게시판에 참여하세요.

그리고 마침내...

Java 개발자가 되는 것은 쉬운 일이 아니지만 이 길을 고수하면 적절한 보상을 받을 것입니다. 많은 성장 기회를 제공하는 직업이며 매일 해야 하는 다양한 작업에 계속 참여하게 될 것입니다.

그것이 당신을위한 것이 아니라는 것을 알아 내더라도, 결국 시도하는 데 아무런 상처가 없습니다. 소프트웨어 개발자가 되는 것이 당신이 지난 몇 년 동안 찾고 있던 것일 수도 있습니다!

728x90