본문 바로가기
반응형

개발공부102

Lombok 롬복 - 반복적으로 사용하는 코드 작성을 생략하는 라이브러리 장점 어노테이션 기반으로 코드를 자동 생성하므로 생산성이 높아진다. 반복되는 코드를 생략할 수 있어 가독성이 좋아진다. 유지보수에 용이하다. 단점 자동 생성해주기 때문에 개발자의 의도대로 정확하게 구현하지 못하는 경우도 발생한다. @Getter, @Setter 데이터(모델) 클래스를 생성할 때 반복적으로 사용하는 getter/setter 메서드를 어노테이션으로 대체하는 기능을 제공한다. 생성자 자동 생성 어노테이션 @NoArgsConstructor : 매개변수가 없는 생성자 @AllArgsConstructor : 모든 필드를 매개변수로 갖는 생성자 @RequiredArgsConstructor : final 이나 @NotNull이 설정된 변수를 매개변수로 갖는 생성자 @ToString 필드의 값을 문자열로.. 2023. 2. 22.
[Spring Boot] 엔티티 관련 어노테이션 @Entity 테이블과 일대일로 매칭되는 클래스 @Table 클래스 이름과 테이블 이름을 다르게 지정해야하는 경우 사용한다. @Table(name = 값) @Id 테이블의 기본 값 역할로 사용된다. 모든 엔티티는 @Id 어노테이션이 꼭 필요하다. @GeneratedValue @Id 어노테이션과 함께 사용된다. 해당 필드의 값을 어떤 방식으로 자동으로 생성할지 결정할 때 사용한다. AUTO IDENTITY SEQUENCE TABLE @Column 필드에 몇가지 설정을 더할 떄 사용한다. name nullable length unique @Transient 엔티티 클래스에는 선언돼 있는 필드지만 데이터베이스에서는 필요 없을 경우 2023. 2. 20.
[Spring Boot] HTTP Request 어노테이션 - GetMapping, PostMapping, PutMapping, DeleteMapping API에 사용하는 HTTP 메서드 어노테이션 스프링 4.3 이후로는 @RequestMapping 메서드는 사용하지 않고 아래 어노테이션들을 사용한다. method 요소를 정의하지 않아도 된다. @GetMapping @PostMapping @PutMapping @DeleteMapping @RestController 어노테이션이 지정된 클래스는 @RequestBody를 생략할 수 있다. @RequestBody 어노테이션은 자동으로 JSON 형식의 값을 전달한다. GET 서버에서 값을 가져올 때 사용하는 API URL 경로나 파라미터에 변수를 넣어 요청한다. 1. @PathVariable을 이용한 GET 메서드 구현 ex) https://test.com/api/v1/get-api/variable1/{varia.. 2023. 2. 18.
제어 역전 IoC, 의존성 주입 DI, 관점 지향 프로그래밍 AOP 제어 역전 IoC (Inversion of Control) 보통의 자바 개발에서는 사용하려는 객체를 선언하고 해당 객체의 의존성을 생성한 후 객체에서 제공하는 기능을 사용한다. => 객체의 관리를 개발자가 직접 제어한다. 하지만 제어 역전을 특징으로 하는 스프링은 사용할 객체를 직접 생성하지 않고 객체의 생명주기 관리를 외부(스프링 컨테이너 또는 IoC 컨테이너)에 위임한다. => 객체의 관리를 컨테이너에 맡긴다. 장점 제어 역전을 통해 의존성 주입(DI), 관점 지향 프로그래밍(AOP) 등이 가능해진다. 개발자는 비지니스 로직을 작성하는데 집중할 수 있다. 의존성 주입 DI (Dependency Injection) 사용할 객체를 직접 생성하지 않고 외부 컨테이너가 생성한 객체를 주입받아 사용하는 방식 .. 2023. 2. 11.
프로세스 vs 스레드 차이점 그리고 멀티프로세스와 멀티스레드 프로세스운영체제로부터 자원을 할당받는 작업의 단위실행중인 프로그램프로세스 내부에는 최소 하나의 스레드를 가지고 있다.프로세스끼리는 메모리 공유가 불가능하다. => 프로세스끼리는 메모리 공유가 안되기 때문에 HTTP, TCP 를 사용하면 된다. 스레드프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위프로세스 내에 여러개 생길 수 있다.스레드끼리는 메모리 공유가 가능하다. 프로세스스레드각각 독립된 메모리 영역을 할당해주기 때문에 프로세스간 자원을 공유하지 않는다.스레드 간 메모리를 공유한다.  멀티 프로세스하나의 프로그램을 여러개의 프로세스로 구성하여 각 프로세스가 하나의 작업을 처리하는 것 멀티 프로세스를 사용하는 이유?서버 한대의 설능에는 한계가 있다. scale-out이 필수이다.서버 아키텍처를 구성.. 2023. 2. 5.
프로그래머스 과제테스트 연습 사이트 프로그래머스에 기업의 개발 과제를 연습해볼 수 있는 사이트가 있다. 1시간~3시간 짜리 과제이기때문에 조만간 시간 내서 하나 풀어보고 싶다. 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2023. 2. 5.
[공유] 나의 알고리즘 공부 기록 github with 파이썬 정말 쉽지 않은 알고리즘. 코딩테스트 코테의 세계 매일은 못하고... 요즘에는 그래도 일주일에 한번정도 공부하는중이다~ GitHub - nayoung240/algorithm: 알고리즘 문제 풀고 정리하기 with 파이썬 알고리즘 문제 풀고 정리하기 with 파이썬. Contribute to nayoung240/algorithm development by creating an account on GitHub. github.com 내용 유형별 알고리즘 문제 / 풀이 언어: 파이썬 python 알아두면 쓸모있는?! 나만의 Cheat seat 2023. 1. 30.
[운영체제] CISC, RISC 란? 차이점 23.01.30 개발 한 스푼 에서의 질문으로 나와서 검색하고 정리하기. 운영체제쪽이라 솔직히 잘 모르는 부분이다.. 어렵다. CISC (Complex Instruction Set Computer) 한글로 번역하면 "복잡한 명령어 세트 컴퓨터" 다양한 종류와 복잡한 명령어로 이루어진 CPU 하드웨어 중점이다. 설계 목적: 하나의 명령어 당 최대한 많은 작업을 하게 하는 것 단점 명령어가 복잡하여 디코딩 시간이 오래걸리고 복잡하다. 명령어의 길이가 달라서 동시에 여러개 명령 처리가 어렵다. RISC (Reduced Instruction Set Computer) 한글로 번역하면 "단축 명령어 세트 컴퓨터" 1980년 제시된 CPU의 명령어셋 아키텍처 개념 소프트웨어 중점이다. 설계 목적: 프로그램의 길이는 .. 2023. 1. 30.
gradle dependencies 의존성 관리 알아보기 build.gradle 내용 중 의존성 관리 부분 알아보기 dependencies 에는 프로젝트에 필요한 라이브러리를 정의해놓는다. ex) dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' runtimeOnly 'mysql:mysql-connector-java' compileOnly 'org.projectlombok:lombok' developmentOnly 'org.springframework.boot:spring-boot-devtools' annotationProcessor 'org.. 2023. 1. 29.
728x90
반응형