“당신이 이룩한 기술적 성취를 너무 자랑스러워하지 마세요. 행성을 파괴하는 능력은 포스의 힘에 비하면 아무것도 아니다." - 데스 스타의 다스 베이더
소개
아마도 일련의 기사 중 다음 두 부분이 많은 사람들에게 가장 기대되는 부분일 것이며 그럴 만한 이유가 있습니다. 수평선 너머, 순수한 Java 너머에는 무엇이 있을까요? Java 개발자는 모든 프로젝트에서 무엇을 호흡합니까? 이 책은 주요 프로그래밍 언어가 Java인 일반 백엔드 엔지니어를 위한 실제적이고 완전한 자습 가이드입니다 . 저는 가능한 한 병원 평균을 다루고 가장 널리 사용되는 프레임워크뿐만 아니라 현재 관련성이 있다고 간주되는 솔루션도 설명하려고 합니다. 당연히 많은 도구가 있으며 가장 중요하고 가장 좋은 도구를 이해하는 것은 아무데도 갈 수 없는 길입니다. 여러분 각자는 DOU의 "일자리" 섹션을 살펴보고 공석에서 공석으로 끊임없이 반복되는 기술 스택을 발견했습니다. 모든 것을 설명하는 것은 불가능하다는 것을 이해하지만, 일반적인 틀을 생각해 내는 것은 괜찮으므로 이 방향을 따라가도록 합시다. 어떻게 든 과거에 프로젝트 중 하나에서 다소 흥미로운 당혹감이 발생했는데, 제 생각에는 한 분야 또는 다른 분야의 많은 사람들에게 때때로 끊임없이 반복되었고 반복되었습니다. 작업은 단순히 개별 엔터티의 상태를 표시하기 위해 하나의 HTML 페이지 렌더링을 완성된 기능에 첨부하도록 설정되었습니다. 결과적으로 내 동료는 아무도 Spring을 사용하지 않을 때 Spring 자체의 핵심 종속성 중 일부를 가져오는 spring thymeleaf를 연결하기로 결정했습니다. 그리고 이는 2~3개 엔터티의 상태를 간단히 보여주는 하나의 일반 페이지에 대한 것입니다. "나는 두 개의 광선검을 사용하는 것에 대해 많은 의미를 본 적이 없습니다. 내 생각에는 그것은 과시적인 것입니다." - 오비완 케노비. 한편, 개발자는 가능한 한 빨리 문제를 해결하고 사용 경험이 있는 프레임워크를 설치하여 몇 시간 만에 프로젝트에 통합했습니다. 그러나 반면에 우리 프로그램의 규모가 커졌기 때문에 간단한 질문은 다음과 같습니다. 그가 옳은 일을 했습니까? 이러한 원자적 작업의 경우 이 thymeleaf/Spring MVC 등이 더 크다는 것을 확실히 알고 있는 경우입니다. 어디에서도 사용되지 않으므로 전혀 사용하지 않는 것이 좋습니다. 나는 항상 “오! 예, 여기서는 Hibernate를 사용했습니다! 봐, 다 괜찮아, ORM!”, 여기서 정규 JDBC로 버틸 수 있느냐는 논리적인 질문에 그들은 어깨를 으쓱했다. 단순해야 하고, 패셔너블하고 초현대적인 프레임워크로 어수선하지 않고, 두려움을 가지고 다루어야 하는 평범한 아키텍처가 있습니다. 위에서 Obi-Wan이 말했듯이 사용법을 알아야하지만 이것은 과시에 지나지 않습니다. 제 생각에는 젊은 자바스트가 가장 불운한 사람입니다. 사양이 너무 많고 연구해야 할 라이브러리도 너무 많습니다. Java EE만으로도 지붕을 통한 문서가 있습니다. 초보자가 무엇을 해야 하는지, 다음에 무엇을 배워야 하는지, Horstmann 이후에 무엇을 해야 하는지에 대한 질문이 생깁니다. 간단한 대답: 안타깝게도 많은 사람들을 만나보세요. 그리고 우리는 비즈니스 프레임워크부터 시작하지 않고 보다 일상적인 필수 항목부터 시작할 것입니다.운영체제
리눅스
Windows 및/또는 아늑한 Yosemite 외에도 웃는 얼굴로 Linux에 손을 뻗어야 합니다. 일부 프로젝트의 경우 사용자가 되어 명령줄을 사용하는 방법을 아는 것만으로도 충분하고 다른 프로젝트의 경우 훨씬 더 많습니다. 어떤 방법이 가장 좋나요? 인터넷에는 수많은 책이나 튜토리얼이 있습니다. Ubuntu 또는 원하는 다른 배포판을 설치하여 시작 하고 다음 한두 달 동안 이를 기본 운영 체제로 사용해 보십시오. 터미널을 사용하여 파일을 컴파일하고 조작하여 Linux 내에서 Java 학습을 시작하면 훨씬 더 좋습니다. William Shotts의 Linux 명령줄 . 이 책을 "그레이의 50가지 그림자" 소설이 아닌 본격적인 대화형 코스로 읽어보세요. 터미널을 열고 저자를 따라 반복하세요. 기본 사항과 Linux가 어떻게 작동하는지 알고 싶으십니까? 컴퓨터 공학과 운영 체제 과정은 수강하지 마세요. 그건 다음 부분에 있습니다. edx.org 로 이동하여 쉬운 Linux 입문 과정을 시도해 보세요 . 위에서 언급한 Brian Ward의 How Linux Works: What Every Superuser Should Know 시리즈의 책도 있습니다 . 네트워킹, 장치 및 리소스 관리에 주의를 기울이는 삽화가 잘 담긴 출판물입니다. 계속하시겠습니까? 훌륭한 책이 있는데, 그런데 여기 어딘가에 있는데... 네 (먼지를 흔들며)... 여기 있어요! Unix 및 Linux: 시스템 관리자 안내서. 에비 네메스. 꽤 큰 설명서, 잘 번역되어 있습니다. 솔직히 개인적으로 마스터하지는 못했지만 행정의 기본 (첫 번째 부분)이 정말 마음에 들었습니다. 당연히 쉘 스크립팅을 무시할 수 없습니다. 이 모든 것을 실제로 시도해 보는 것이 더 좋지만 책에서 Cameron Newham이 쓴 Learning the bash Shell: Unix Shell 프로그래밍을 볼 수 있습니다 . Linux/Unix에 관한 이렇게 방대한 양의 문헌을 전부 다룰 수는 없습니다. 특히 Linux가 배경에 있는 이 기사에서는 더욱 그렇습니다. 이 문제에 대해 개를 먹은 직장 동료는 다소 실용적인 조언을 했습니다. ArchLinux를 다운로드하고 실행해 보세요. 그 과정에서 당신은 내가 원하지 않는 것을 가장 많이 배우게 될 것입니다!윈도우
프로그래머의 이력서에는 "Windows 경력 10년 이상"이라는 항목이 있습니다. 물론 10살 때부터 Windows에서 카운터 플레이를 해왔다는 사실은 축하하지만 인터뷰에서 미리 구멍을 파지 말라고 부탁드립니다. IIS, 배치/파워셸, 신의 금지, 레지스트리, 인터뷰는 실제로 어렵지 않을 것이며, 게다가 앉아 있는 사람의 반대편에 미소를 짓습니다. Lida 당신은 또한 약간의 굴욕을 받게 될 것입니다. 이것이 필요합니까? 대답은 그 자체를 암시합니다. 불법 복제된 Windows를 토렌트에서 제외하고 일종의 Windows Server 가상 머신에 설치해 보세요. 사용자 측과 JAVA_HOME 설치뿐만 아니라 연구하십시오. 이와 관련하여 Mark Minasi가 쓴 Mastering Windows Server 2012 R2 책 형태로 거의 완전한 가이드가 있습니다 . 예를 들어, PowerShell을 사용하는 경우 Bruce Payette가 쓴 훌륭한 책 Windows PowerShell in Action by Manning을 확인하세요 . 1000페이지를 넘기는 것이 불가능하다는 것을 이해하지만 최소한 참고용으로 보관할 수는 있습니다. 다른 것은 필요하지 않다고 생각합니다. 따라서 Windows 사용에 대한 지식의 공백에 주의를 기울이고 관심 있는 정보를 인터넷에서 찾아보세요.빌드 도구
메이븐
Maven에서 이해해야 할 가장 중요한 것은 무엇입니까? 첫 번째 단계와 작업은 다음과 같습니다.- Maven이 각 단계에서 수행하는 작업을 알아보고 암기할 수도 있습니다. 이것은 거의 80%의 성공이며 명확한 그림을 제공할 것입니다.
- 명시적인 종속성 관리 기능을 갖춘 다중 모듈 시스템을 사용하여 로컬에서 자신만의 샌드박스 프로젝트를 생성하세요. 타사 라이브러리를 연결하고 이를 사용하여 무언가를 만들어 보십시오.
- 프로필을 가지고 놀아보세요
- 플러그인 관리를 이해하고 공식 웹사이트에서 가장 인기 있는 플러그인 목록을 연구하세요.
- 프로젝트에서 Maven을 가장 잘 사용할 수 있는 방법을 살펴보세요. 예를 들어 병렬 빌드를 사용하면 빌드 시간을 크게 줄일 수 있습니다.
개미
이 도구는 훨씬 쉬워 보이기 때문에 여기서 배울 내용은 많지 않습니다. ANT가 유일한 빌드 도구인 프로젝트가 여전히 있습니다. 이는 완전히 정상적인 현상입니다. ANT는 소규모 원자 작업(ant 작업)을 관리하는 맥락에서 간단하고 간단한 빌드 도구임이 입증되었습니다. 물론 여기에는 Maven과 마찬가지로 많은 플러그인이 있습니다. ANT를 시작하려면 다음을 수행하십시오.- 파일과 폴더를 조작해 보세요
- 작업 실행을 위해 다양한 순서를 구현합니다. 이를 바탕으로 ANT에서 작업의 종속성과 우선순위를 알아봅니다.
- 압축 풀기 및/또는 zip 아카이브. 작업에서는 아카이브의 내용 등을 가지고 놀아보세요.
그래들
나에게 Gradle은 Maven보다는 ANT에 더 가깝지만 완전히 이 두 사람의 이복형이라고 할 수 있습니다. Maven과 유사한 라이프사이클을 가지며 ANT와 동일한 작업의 유연성을 갖습니다. 가장 중요한 점은 Gradle은 XML을 사용하지 않으며, 게다가 Groovy에 어느 정도 익숙하다면 Gradle을 사용하여 원하는 것은 무엇이든 할 수 있다는 것입니다. 일반적으로 꽤 맛있는 것입니다. IDE 환경에서 Ant/Maven/Gradle을 사용하는 것을 두려워하지 마세요. 이러한 도구는 Eclipse/IDEA에 긴밀하게 통합되어 있으며 IDE 컨텍스트에서 이러한 도구를 사용하는 것은 매우 편안합니다.지속적인 통합
이론
이것은 해고로부터 당신을 보호하는 엔젤 프로그램입니다. 간단히 말해서, 이는 코드 변경 사항을 모니터링하고 사용자를 위해 작성된 테스트를 빌드 및 실행하는 소프트웨어입니다. 각 커밋/병합 후 모든 것이 정상이면 빌드가 기분 좋은 녹색/파란색 빛으로 빛납니다. 무언가를 위반하는 즉시 CI 시스템이 이를 즉시 보고합니다. 그러나 약간의 이론은 고전적입니다! 지속적인 통합: 소프트웨어 품질 개선 및 위험 감소 작성자: Paul Duvall . (러시아어로 "지속적 통합"이라고도 함) 이 책에서는 자신만의 CI 시스템을 만드는 방법에 대해서도 설명합니다. 이 분야에서 가장 널리 사용되는 두 가지 솔루션을 살펴보겠습니다.젠킨스
허드슨이라고도 불리는 젠킨스. 개방적이고 친근하며 사용하기 쉬운 애플리케이션입니다. Jenkins에 더 익숙해지려면 다음을 시도해 보세요.- 컴퓨터에 다운로드하세요. JDK, Maven, ANT 및 프로젝트에 필요한 모든 것을 설치하고 구성합니다.
- 첫 번째 작업을 생성하고 프로젝트의 위치(예: 기본 pom.xml)를 지정합니다. 그것을 실행하고 명확하게 볼 수 있도록 일종의 테스트가 있는지 확인하십시오.
- 다양한 설정과 옵션으로 프로젝트를 실행하는 방법을 알아보세요.
- 다양한 플러그인을 연결하고 프로젝트와 함께 어떻게 작동하는지 확인하세요.
- 다양한 작업에 대한 트리거를 구성합니다. 작은 파이프라인을 만듭니다.
- DSL을 살펴보고 Jenkins와 통합해 보세요.
- 다른 컴퓨터에서 슬레이브를 설정하거나 빌드 실행을 위한 일반 머신으로 만듭니다.
- 야간 빌드를 만듭니다.
GO TO FULL VERSION