본문 바로가기

study

(126)
자바/JAVA 제네릭 생활코딩 강의를 듣고 적는 글입니다. 제네릭(Generic)은 클래스 내부에서 사용할 데이터 타입을 외부에서 정하는 기법이다. 클래스를 선언할 때, 클래스 이름 뒤에 다이아몬드 꺽쇠 안에 데이터 타입 변수를 선언한다. 보통 T라고 한다. 이 T는 정해지지 않은 데이터 타입이다. 그리고 이 클래스로 객체를 만들 때, T의 구체적인 타입을 정할 수 있다.(복수로 사용할 수 도 있다.) 다음과 같이 사용할 수 있다. p1을 생성할 때는 꺽쇠 안에 String을 넣었다. 그러면 p1.info의 타입은 String이 된다. 마찬가지로 p2.info의 타입은 StringBuilder가 된다. class Person { public T info; } Person p1 = new Person(); Person p2 =..
자바/Java 논리, 비트 연산자, 이름을 갖는 반복문 자바 공부하면서 정리 안했던 것들 추가로 정리하는 중. 논리 연산자: true, false에 대해서 연산할 때 사용함 && : AND || : OR ! : NOT 비트 연산자: 비트끼리 연산한다. & : 비트 AND 연산 | : 비트 OR 연산 ^ : 비트 XOR 연산(다르면 1) ~: 비트 반전 NOT --> 부호가 바뀜 > N : N만큼 오른쪽 쉬프트 연산(왼쪽 쉬프트하고 같음.) >>> N: N만큼 비트를 오른쪽으로 이동시키고, 새로운 비트는 0이됨. --> 이건 부호비트까지 쉬프트 됨. 이름을 가지는 반복문 break 는 지금 실행중인 반복문만 빠져나갈 수 있다. 중첩된 반복문에서 다른 반복문까지 빠져나가고 싶을 땐 반복문에 라벨(label)을 붙여 break "라벨명"으로 해당 반복문을 빠져나갈..
자바/Java 컬렉션 강의 정리(2) 이 글은 뉴렉쳐님의 강의를 듣고 정리하는 글입니다. youtube.com/playlist?list=PLq8wAnVUcTFWKOIbvo18pJZ9zsxtXz_-k Object 타입의 배열을 만들면 모든 타입의 데이터를 만들 수 있지만, 반환할 때는, 어떤 타입인지 몰라 사용하기 어렵다. 그래서 "제네릭 Generic"이란 것이 등장했다. 제네릭은 데이터 타입을 일반화한다는(generalize) 것이다. 컬렉션을 만들 때, 자료형이 비어있는 리스트를 만든다. 그리고 타입을 정해준다. -> 자료형마다 컬렉션을 만드는 게 아니다. 이렇게 만든 컬렉션은 데이터를 넣고 뺄 때, 지정된 타입으로 변환해준다. 실제로는 Object 타입의 배열이 선언돼있지만, 지정된 타입으로 바꿔는 것이다. 형식을 전달받기 위해 키워드..
자바/Java 컬렉션 강의 정리(1) 이 글은 뉴렉쳐님의 강의를 듣고 정리하는 글입니다. youtube.com/playlist?list=PLq8wAnVUcTFWKOIbvo18pJZ9zsxtXz_-k 컬렉션이란 데이터를 (배열형태로?) 수집하고 관리해주는 객체이다. 간단히 말해서 가변 길이를 가진 배열이다. 대표적인 기능들은 다음과 같은 것이 있다. .add(value) 요소 추가 .remove(index) 요소 제거 .clear() 전체 삭제 .size() 전체 길이 반환 .get(index) index에 있는 값 반환 그럼 컬렉션은 왜 사용할까? 데이터 관리를 직접할 필요 없다. 제공하는 메소드를 통해 쉽게 값을 추가하고 뺄 수 있다. 배열의 크기를 알아서 늘려준다. 직접 만들어본 컬렉션. 정수형을 담는 컬렉션이다. package app...
6. Spring boot 입문 - DB에 저장된 데이터 목록 페이지 만들기 DB에 있는 데이터들을 목록화하는 뷰를 만들자 대략적 순서 브라우저가 요청을 한다. 컨트롤러는 Repository를 통해 DB에서 모든 데이터를 가져온다. Model 객체로 뷰에게 전달한다. 뷰에서 출력하고 브라우저에게 응답한다. 자세히 보자 컨트롤러에서 요청을 받는 메소드를 만든다. Repository는 DB에서 findAll()함수로 가져온다. 여기서 기본 반환 타입은 Iterable 타입이다. 따라서 해당 findAll() 메소드를 재정의하여 ArrayList 타입으로 반환하도록 한다. 컨트롤러는 데이터를 List 형태로 업캐스팅해서 받는다. Model 객체를 사용하여 뷰 템플릿에게 전달한다. 뷰는 묶음 데이터를 전달받게 되는데 mustache에서는 묶음 데이터의 경우, 모델이 준 데이터를 사용하는..
5. Spring boot 입문 - DB에 저장된 데이터 출력하기 폼데이터를 통해 DB에 데이터를 저장했다면, 저장된 데이터를 다시 출력해보자 대략적으로 본다면 브라우저에서 데이터를 URL로 요청한다 컨트롤러가 그 요청을 받고 URL에서 요청한 정보를 Repository에게 전달한다 Repository는 DB에게 요청한다 DB는 Entity로 전달한다. 전달된 Entity는 Model에 등록되고 뷰템플릿으로 전달돼 브라우저에게 보낸다 좀 더 자세히 설명하면 컨트롤러가 GetMapping으로 요청을 받는다. URL에는 사용자가 요청하는 데이터가 들어있고 그 값은 계속 변한다. 그래서 어노테이션에서 mustache 한쌍으로 변하는 값을 받는다.(ex) {id}) 그러면 GetMapping 메소드에서 @PathVariable 이라는 어노테이션을 통해 사용자가 보낸 값을 매개..
4. Spring boot 입문 - 폼데이터 DB에 저장, 롬복과 로깅 폼 데이터를 db에 저장하기(H2 Database) 자바에서 DB를 사용하기 위해서 JPA를 사용한다. JPA는 DB를 조작할 수 있고, 편리한 기능을 제공한다 컨트롤러는 DTO로 폼 데이터를 받는데, 그것을 Entity라는 객체에 전달한다. Entity는 DB에 규격화된 데이터다. Entity는 Repository를 통해 DB에 전달되고 처리된다. 폼데이터를 갖는 DTO를 Entity로 바꾼다. Entity 클래스를 만든다. (@Entity) 필드에는 DTO가 갖고 있는 데이터를 받을 변수를 선언한다.(@Column) 그리고 대표값을 만든다.(id, @ID) DTO 클래스에서 toEntity메소드를 만들어 컨트롤러에서 메소드를 이용해 DTO의 데이터를 Entity로 만든다. Repository에게 En..
3. Spring boot 입문 - 레이아웃, 웹페이지에서 데이터 받기 웹 페이지를 만들 때, 같은 내용이 여러 페이지에서 나오는데 레이아웃을 나눠 제작하면 코드의 중복을 줄일 수 있다. 화면을 나눠 배치하는 것을 레이아웃이라고 한다. 대표적으로 header(navigation), content(재사용하지 않음), footer(information)으로 나눈다. 이렇게 하면 레이아웃을 템플릿처럼 만들 수 있다. 순서를 대략적으로 요약하면 헤더 부분 뷰를 작성한다. 푸터 부분 뷰를 작성한다. 컨텐츠 부분을 작성한다. 작성할 때, 처음 부분과 끝 부분에 헤더, 푸터를 mustache를 이용해 넣는다. {{