JavaRush /Java Blog /Random-KO /커피 브레이크 #70. Lombok으로 Java 코드를 더 빠르게 작성하는 방법 초보 프로그래머를 위한...

커피 브레이크 #70. Lombok으로 Java 코드를 더 빠르게 작성하는 방법 초보 프로그래머를 위한 교육 목록

Random-KO 그룹에 게시되었습니다

Lombok으로 Java 코드 작성 속도를 높이는 방법

출처: Dev.to 우리는 모든 애플리케이션에 동일한 상용구 코드를 작성합니다. 예를 들어:
  • 게터;
  • 세터;
  • 디자이너;
  • 빌더 디자인 패턴;
  • 그리고 훨씬 더…
이런 일상적인 일을 누군가에게 맡길 수 있다면 좋지 않을까요? 이것이 바로 롬복이 우리를 도울 수 있는 곳입니다.커피 브레이크 #70.  Lombok으로 Java 코드를 더 빠르게 작성하는 방법  초보 프로그래머를 위한 나의 교육 목록 - 1

그는 무엇을 하고 있나요?

이는 이러한 일반적인 작업(getter, setter 등)에 대한 바이트 코드를 생성하고 이를 .class에 넣어 우리가 작성하는 코드에서 사용할 수 있도록 합니다.

어떻게 이런 일이 발생하나요?

Maven 빌드에 Lombok 종속성을 추가해야 합니다. 그런 다음 원하는 클래스, 일부 Lombok 주석이 있는 필드에 주석을 달아야 합니다. 코드를 살펴보자! 롬복 제외:
public class Human {
    private int id;
    private String name;
    private int ageInYears;

    public Human() { }

    public Human(int id, String name, int ageInYears) {
        this.id = id;
        this.name = name;
        this.ageInYears = ageInYears;
    }

    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public int getAgeInYears() {
        return ageInYears;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setAgeInYears(int ageInYears) {
        this.ageInYears = ageInYears;
    }

    // Builder pattern
  public Human id(int id){
        this.id = id;
        return this;
    }
    public Human name(String name){
        this.name = name;
        return this;
    }
    public Human ageInYears(int ageInYears){
        this.ageInYears = ageInYears;
        return this;
    }

    @Override
  public String toString(){
        return String.format("Human(id=%s, name=%s, ageInYears=%s)",
                this.id, this.name, this.ageInYears);
    }
}
이제 Lombok을 사용해 보겠습니다.
import lombok.*;
@Getter @Setter
@AllArgsConstructor @NoArgsConstructor
@Builder @ToString
public class Human {
    @Setter(AccessLevel.NONE)
    private int id;
    private String name;
    private int ageInYears;
}
Maven 종속성은 다음과 같습니다.
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.16</version>
    <scope>provided</scope>
</dependency>
참고: 버전 부분은 최신 Lombok 릴리스에 따라 변경됩니다.

우리는 무엇을 했나요?

우리는 주석을 사용하여 getter, setter, 생성자, Builder 디자인 패턴 및 toString 구현을 만들었습니다. id 필드의 setter와 같은 일부 주석을 변경할 수도 있습니다. 액세스 수준을 없음으로 설정했습니다. 이는 이에 대한 설정자를 생성하지 않음을 의미합니다.

할 만한 가치가 있었나요?

우리는 Lombok을 사용하지 않을 때 52줄을 썼습니다 . Lombok을 사용하여 8줄을 작성했습니다 . Lombok은 코드 크기를 거의 4배로 줄이는 데 도움이 되었습니다 . 교실에 변수가 더 많으면 이 점수가 향상될 수 있습니다. Lombok에는 유용한 정보가 많이 포함된 더 많은 주석이 있습니다. 이를 보려면 웹사이트를 방문하세요 .

결론

Lombok은 작은 세부 사항(getter/setter/constructors/일반 디자인 패턴 및 기타 Java 구성)에 대해 걱정하지 않고 비즈니스 코드에 집중할 수 있도록 도와줍니다.

초보 프로그래머를 위한 교육 목록

출처 : DZone 내 친구에게는 곧 고등학교를 졸업할 아들이 있습니다. 그는 프로그래밍에 대해 조금 알고 있으며 프로그래머가 되어야 할지 고민하고 있습니다. 최근에 그는 나에게 “다음에는 무엇을 가르쳐야 합니까?”라고 물었습니다. 커피 브레이크 #70.  Lombok으로 Java 코드를 더 빠르게 작성하는 방법  초보 프로그래머를 위한 교육 목록 - 2제가 처음 프로그래밍을 배우기 시작했을 때, “다음에 무엇을 배워야 할까요?”라는 질문에 대한 답은 새로운 프로그래밍 기술, 새로운 언어, 새로운 라이브러리 등이 될 것이라고 생각했습니다. 경력을 쌓아가면서 마음이 바뀌었습니다. 프로그래밍 기술을 연마하고 새로운 언어를 배우는 것 외에도, 야심 찬 프로그래머는 관련 분야에서 공부해야 합니다(이에 대해서는 아래에서 설명하겠습니다). 이 글에서 나는 프로그래머들에게 마스터하라고 추천하고 싶은 기술 목록을 모으고 싶습니다. 내 목표는 현재 지식을 모두 나열하거나 튜토리얼에 대한 링크를 제공하는 것이 아닙니다. 대신, 나는 초보자들이 프로그램 작성에 도움이 될 수 있는 일련의 도구, 기술 및 기술에 익숙해지도록 돕고 싶습니다.

명령줄

나는 어떤 기준에서는 이미 "늙었다"고 간주되는 것 같습니다. 당시 컴퓨터를 사용한다는 것은 DOS에 앉아서 명령을 입력하는 것을 의미했습니다. 그 이후로 많은 것이 바뀌었습니다. 명령줄을 사용하는 방법을 배우는 것은 매우 중요합니다. 많은 도구는 명령줄 인터페이스만 제공합니다. 어떤 경우에는 명령줄에서 더 빠르게 작업할 수 있습니다. 다음과 같은 기본적인 작업을 수행할 수 있어야 합니다.
  • 디렉터리 순회.
  • 파일 관리(복사/이동/삭제).
  • 소스 코드 컴파일 및/또는 실행.
Windows를 사용하는 경우 전체 가상 머신 대신 WSL2를 사용하여 Linux에 익숙해지는 것이 좋습니다. Mac을 사용하는 경우 OS에 내장된 셸을 사용할 수 있습니다. Linux 가상 머신을 설치하여 좋은 경험을 얻을 수도 있습니다.

버전 관리

버전 제어를 사용하여 소스 코드를 추적하는 방법을 배워야 합니다. 버전 관리 소프트웨어를 사용하면 프로젝트의 개정 내역을 추적할 수 있으며 이는 디버깅에 필수적일 수 있습니다. 또한 코드베이스에서 공동 작업을 더 쉽게 수행할 수 있습니다. GitHubGitLab은 오픈 소스 프로젝트를 호스팅하는 인기 있는 두 사이트입니다. 둘 다 Git을 사용합니다(이름에서 알 수 있듯이). Git은 요즘 가장 인기 있는 도구이므로 GitHub 또는 GitLab을 리포지토리로 사용하여 명령줄에서 Git을 사용하는 방법을 익히는 것이 좋습니다.

네트워크

오늘날 대부분의 프로그램에는 최소한 일정 수준의 네트워킹이 필요합니다. 네트워크 작동 방식을 이해하는 것이 중요합니다. 최소한 IP 주소, 포트, 프로토콜 등의 기본 사항은 이해해야 합니다. 방화벽, 로드 밸런싱, 프록시에 대해 배우면 나중에 도움이 될 것입니다. 프로그래밍 경력뿐만이 아닙니다. 동의합니다. "Wi-Fi가 작동하지 않는 이유는 무엇입니까?"라는 질문을 이해하는 것이 좋습니다. AWS, Azure 등 클라우드 서비스의 기본도 배워보는 것을 추천합니다. 서브넷, 로그인 규칙, 게이트웨이를 사용하여 AWS Virtual Private Cloud를 설정하면 네트워킹 경험을 얻을 수 있습니다.

테스트

좋은 소프트웨어를 작성하는 데 있어 필수적인 부분은 소프트웨어 테스트 방법을 배우는 것입니다. 우리 중 많은 사람들이 코드를 프로그래밍하고 "테스트"하는 방법을 배웁니다. 단위 및 통합 테스트는 작업하는 거의 모든 소프트웨어에 적용할 수 있는 필수 기술입니다. 처음에는 테스트가 지루해 보일 수 있지만 이 기술을 사용하면 더 빠르고 자신감을 갖고 작업할 수 있습니다.

지속적인 통합

지속적 통합(CI)은 테스트와 버전 제어를 결합합니다. 새로운 코드 반복을 생성할 때마다 자동으로 실행되는 테스트 세트가 있습니다. CI 도구는 지난 10년 동안 크게 개선되었습니다. GitHub와 GitLab에는 CI 솔루션(각각 GitHub Actions 및 GitLab CI)이 내장되어 있어 쉽게 시작할 수 있습니다. 테스트와 마찬가지로 CI를 시작하는 것도 어려울 것입니다. 하지만 일단 기본 사항을 배우면 문제를 훨씬 쉽고 빠르게 찾을 수 있습니다. 사용 중인 프로그래밍 언어에 대한 예제가 포함된 자세한 튜토리얼을 찾아보는 것이 좋습니다.

글쓰기 능력

아마도 제가 프로그래머로 일을 시작했을 때 가장 과소평가했던 분야가 바로 이 부분일 것입니다. 나는 과장하지 않습니다. 나는 이제 프로그래머가 자신의 무기고에 추가할 수 있는 가장 중요한 기술은 글쓰기라고 믿습니다. 좋은 글쓰기 능력은 최소한의 단어를 사용하여 아이디어를 명확하게 설명할 수 있다는 것을 의미합니다. 프로그래밍을 배울 때는 대개 혼자 작업하므로 글을 쓸 필요가 없습니다. 하지만 팀으로 작업을 시작하려면 다음을 작성해야 합니다.
  • 선적 서류 비치;
  • 버그 신고
  • 기능 요청;
  • 고객 제안
  • 요구 사항이 있는 문서
  • 이메일(많은 이메일!)
  • 문자 메시지
  • 블로그 게시물(아마도)
글쓰기를 배우십시오. 운동. 글쓰기 강좌를 수강하세요. 그것은 당신의 남은 생애 동안 배당금을 지불할 것입니다. 또한 잘 읽는 법을 배우십시오. 제가 처음 전문성 개발을 시작했을 때 요구사항 문서 때문에 겁이 났습니다. 나는 이제 이 정보를 주의 깊게 연구하는 데 몇 시간을 투자하면 잘못된 것을 구축하는 데 낭비되는 수개월을 절약할 수 있다는 것을 깨달았습니다.

다른 프로그래밍 언어

요즘에는 프로그래밍 언어 하나만 아는 것만으로는 충분하지 않습니다. 거의 모든 프로그래머는 최소한 몇 가지를 알고 있어야 합니다. 새로운 기술을 배우려면 다른 언어를 공부하는 것이 중요합니다. 나는 몇 가지 다른 범주의 언어를 배우는 것이 좋습니다. 우선순위 내림차순: 함수형 프로그래밍. 대부분의 학교에서는 여전히 함수형 프로그래밍(FP)을 가르치지 않습니다. FP는 다양한 유형의 코드 작성을 더 쉽게 만들어주는 강력한 접근 방식입니다. 나는 편견이 있지만 다른 많은 언어보다 FP를 더 잘 이해하는 데 도움이 될 것이기 때문에 Haskell을 배우기 가장 좋은 언어로 추천하고 싶습니다. LISP 계열의 언어를 배우는 것도 유용합니다. 함수형 프로그래밍을 배우면 거의 모든 언어로 더 나은 코드를 작성하는 데 도움이 됩니다. 시스템 프로그래밍. 시스템 언어는 하위 수준에 속하며 프로그램 작동을 더 잘 제어할 수 있습니다. 이를 연구함으로써 시스템에서 프로그램이 어떻게 작동하는지 배우게 되며, 이는 다른 언어의 문제를 이해하고 디버깅하는 데 매우 유용할 수 있습니다. 나는 Rust를 배우고 C와 C++를 배우는 것을 추천합니다. 객체 지향 언어. Java와 C#은 이 계열에서 가장 널리 사용되는 두 가지 객체 지향 언어입니다. (예, Python과 C++도 인기가 있지만 별도로 강조하겠습니다). OOP는 많은 새로운 패러다임을 도입했으며 개인적으로 함수형 프로그래밍 접근 방식을 선호하지만 아마도 여전히 가장 인기 있는 프로그래밍 접근 방식일 것입니다. 그러나 객체 지향 프로그래밍에는 배울 것이 많으며 경력을 쌓으면서 결국 객체 지향 코드를 작성하게 될 가능성이 높습니다. 스크립트 작성. Python과 Ruby는 객체 지향 애플리케이션 제품군에서 널리 사용되는 두 가지 스크립팅 언어입니다. 특히 Python은 DevOps, 데이터 과학 등 관련 분야에서 널리 사용됩니다. 또한 시작하기 매우 쉬운 간단한 언어입니다.

프로그래밍 방법

어떤 프로그래밍 언어를 사용하든 다음을 포함하여 특정 언어를 넘어서는 몇 가지 추가 기술에 익숙해지는 것이 좋습니다.
  • 데이터베이스 프로그래밍. SQL을 배우시는 걸 추천드립니다. SQLite와 PostgreSQL은 살펴볼 두 가지 오픈 소스 DBMS입니다.
  • 병렬성과 비동기 프로그래밍. 이것은 오늘날 점점 더 중요해지고 있습니다.
  • 네트워크 프로그래밍 , 특히 HTTP 서버 및 클라이언트 생성.
  • HTML/CSS/JavaScript를 사용하여 웹 인터페이스 만들기 .
  • JSON, YAML, 바이너리 파일 등의 형식으로 데이터를 직렬화합니다 .

결론

위의 정보는 복잡해 보일 수 있습니다. 프로그래머가 되기 위해 이 모든 것을 배워야 한다고 생각할 필요는 없습니다. 이것은 잘못된 것입니다. 훌륭한 프로그래머가 되려면 시간과 전문적인 연습이 필요합니다. 아직 프로그래밍을 시작하지 않았다면 애완동물 프로젝트부터 시작하는 것이 좋습니다. 오픈 소스 프로젝트에 기여하는 것을 고려해 보세요. 이렇게 하면 숙련된 코더로부터 편안함을 느끼고 배우는 데 도움이 됩니다. 많은 프로그래머는 자신의 지식을 초보자와 공유하는 것을 좋아합니다.
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION