본문 바로가기

수업 & 공부/용어 정리

(10)
57 : @Transactional @Transactional 이란? 스프링에서는 트랜잭션 처리를 지원하는데 그중 어노테이션 방식으로 @Transactional을 선언하여 사용하는 방법이 일반적이며, 선언적 트랜잭션이라 부른다 @RequiredArgsConstructor @Service @Slf4j public class CommentJpaService { public final CommentRepository commentRepository; public final BoardRepository boardRepository; @Transactional public CommentDTO postComment(CommentDTO commentDTO) { @Transactional 의 역할은? 데이터베이스의 상태를 변경하는 작업 또는 한번에 수행..
54 : [Java] Optional 이란? (추가예정) 1. Optional이란? Optional 클래스를 사용해 NPE를 방지할 수 있도록 도와준다. Optional는 null이 올 수 있는 값을 감싸는 Wrapper 클래스로, 참조하더라도 NPE가 발생하지 않도록 도와준다. 클래스이기 때문에 각종 메소드를 제공해준다 null인지 아닌지 체크하는 분기문이 없어서 가독성이 좋다 명시적으로 해당 변수가 null일 수도 있다는 가능성을 표현할 수 있다 NPE : 많이 발생되는 예외 중 하나 NullPointerException 메서드가 반환할 결과값이 ‘없음’을 명백하게 표현할 필요가 있고, null을 반환하면 에러를 유발할 가능성이 높은 상황에서 메서드의 반환 타입으로 Optional을 사용하자는 것이 Optional을 만든 주된 목적이다 1. isPresen..
52 : @Entity, @Builder, @GeneratedValue @Entity @Entity가 붙은 클래스는 JPA가 관리하는 클래스로, 해당 클래스를 엔티티라고 한다 JPA를 사용해서 테이블과 매핑할 클래스는 반드시 @Entity 를 붙여야 한다 [주의사항] 기본 생성자 필수이다. 파라미터가 없는 public 또는 protected 생성자가 필요하다. final 클래스, enum, interface, inner 클래스는 엔티티로 사용할 수 없다. DB에 저장하고 싶은 필드에는 final을 사용할 수 없다. (출처 : https://gmlwjd9405.github.io/2019/08/11/entity-mapping.html) @Table @Table은 엔티티와 매핑할 테이블을 지정하는 것이다. @Table 속성 @Table(name = "Board") 매핑할 테이블 ..
48 : REST API (2) 39 : Springboot (Rest API - @PathVariable ) @PathVariable URL 경로에 변수를 넣어주는 어노테이션이다. 항상 Rest API는 httpMethod를 기준으로 URL 분류 > URL 분류를 간략화 해준다. 여기서 Rest API? (분명 들었는데 기억이 나지 않는다...) “Represe.. dwc04112.tistory.com 이어서... REST API를 쓰는이유 클라이언트 쪽에 JSON방식으로 데이터를 주기 위함이다 (서버에서 클라이언트 에게 JSON방식으로 데이터를 주려면 @ResponseBody 어노테이션을 사용) JspMVC에서는 web browser - server 만 생각했었다. android app OR ios app 등에서 사용할 데이터를 S..
46 : 제네릭 (Generics) 제네릭(Generics) 이란? 제네릭(Generics)은 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입체크를 해주는 기능이다. > 특정타입을 미리 지정해주는 것이 아닌 필요에 의해 지정할 수 있도록 하는 일반(Generic) 타입이라는 것 제네릭을 쓰는 이유? 형변환이 필요없고, 타입의 안정성이 보장된다. 코드가 간결해지고 재사용성이 높아진다. 제네릭 타입을 사용함으로써 잘못된 타입이 사용될 수 있는 문제를 컴파일 과정에서 제거가능 클래스명 뒤에 를 붙여서 선언한다. public class ApiResponse { private final boolean success; private String message = n..
39 : Springboot (Rest API - @PathVariable ) @PathVariable URL 경로에 변수를 넣어주는 어노테이션이다. 항상 Rest API는 httpMethod를 기준으로 URL 분류 > URL 분류를 간략화 해준다. 여기서 Rest API? (분명 들었는데 기억이 나지 않는다...) “Representational State Transfer” 의 약자로 자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미한다. (출처 : https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html) 균일한 인터페이스 제공 : 요청이 어디에서 오는지와 무관하게, 동일한 리소스에 대한 모든 API 요청은 동일하게 NOT REST API 읽기- GET http://localhost..
32- Hash에 대해 알아보자 Hash는 Key와 Value가 쌍을 이루는 자료구조이다 >> 필요한 데이터를 키 값을 통해, 아주 빠르게 탐색가능하다 Hash는 Key값을 Hash Function을 통해, HashCode를 뱉어서 저장공간의 Size로 나눠 Index를 정하여 Value값을 저장한다 Hash Function? 데이터의 효율적 관리를 위해 임의의 길이를 가진 데이터를 고정된 길이를 가진 데이터를 매핑해주는 함수이고, input(Key)과 output(HashCode)을 가진다. 해시 충돌이란? 위 과정에서 다른 Key값에 대해서 Hash Function이 같은 HashCode를 내밷어서 같은 Index에 연결되어 저장되기도하고, 다른 Key값에 대해서 Hash Function이 다른 HashCode를 내밷어도, Inde..
29- 컴파일 언어& 인터프리터 언어 컴파일 언어란? : 고급언어를 기계언어로 번역하여 기계로 하여금 일을 하게끔 만드는 도구 :: 고급언어 : 인간이 보는 프로그래밍 코드로 쓰여진 언어 :: 자연어 : 인간끼리 의사소통 가능한 언어(한국어, 영어, 일본어, ...) 인터프리터란? : 프로그래밍 언어의 소스 코드를 바로 실행하는 컴퓨터 프로그램 또는 환경 :: 번역과 실행이 거의 동시에 실행되므로 1개의 액션이 존재한다 컴파일 언어와 인터프리터 언어의 장단점 그리고 번역에서 코딩시간의 효율성을 볼 수 있다. 인터프리터 언어는 컴파일 언어에 비해 잦은 수정이 발생해도 매번 컴파일 할 필요가 없다는것이 장점이고 컴파일 언어는 코드 일부가 바뀌어도 전체 코드를 컴파일할 필요가 있어 잦은 수정시 비효율적이다. 그러면 컴파일 언어와 인터프리터 언어의..