Backend

· Backend/Java
노드와 연결낭비되는 메모리 없이 딱 필요한 만큼만 메모리르 ㄹ확보해서 사용하고, 또 앞이나 중간에 데이터를 추가하거나 삭제할 때도 효율적인 자료 구조가 있는데, 바로 노드를 만들고 각 노드를 서로 연결하는 방식이다. public class Node { Object item; Node next;}---------------------------------------------------public class NodeMain1 { public static void main(String[] args) { //노드 생성하고 연결하기: A-> B -> C Node first = new Node("A"); first.next = new Node("B"); ..
· Backend/Java
배열의 특징배열과 인덱스배열과 같이 여러 데이터(자료)를 구조화해서 다루는 것을 자료 구조라 한다.자바는 배열 뿐만 아니라, 컬렉션 프레임워크라는 이름으로 다양한 자료 구조를 제공한다. 배열의 특징배열에서 자료를 찾을 때 인덱스(index)를 사용하면 매우 빠르게 자료를 찾을 수 있다.인덱스를 통한 입력, 변경, 조회의 경우 한번의 계산으로 자료의 위치를 찾을 수 있다.  공식: 배열의 시작 참조 + (자료의 크기 * 인덱스 위치)배열에서 인덱스를 사용하는 경우 데이터가 아무리 많아도 한 번의 연산으로 필요한 위치를 찾을 수 있다. 배열의 검색배열에 들어있는 데이터를 찾는 것을 검색이라 한다.배열의 순차 검색은 배열에 데이터가의 크기만큼 연산이 필요하다. 배열의 크기가 n이면 연산도 n만큼 필요하다.  ..
· Backend/Java
제네릭 정리제네릭에 타입 매개변수 상한을 사용해서 타입 안정성을 지키면서 상위 타입의 원하는 기능까지 사용할 수 있었다.   제네릭 타입정의: GenericClass 타입 인자 전달: 객체를 생성하는 시점예)  new GenericClass 제네릭 메서드정의: T genericMethod(T t)타입 인자 전달: 메서드를 호출하는 시점예) GenericMethod.genericMethod(i)  제네릭 메서드는 클래스 전체가 아니라 특정 메서드 단위로 제네릭을 도입할 때 사용한다.제네릭 메서드를 정의할 때는 메서드의 반환 타입 왼쪽에 다이아몬드를 와 같이 타입 매개변수를 적어준다.제네릭 메서드는 메서드르 실제 호출하는 시점에 다이아몬드를 사용해서 와 같이 타입을 정하고 호출한다.인스턴스 메서드, sta..
· Backend/Java
제네릭제네릭이 필요한 이유 정리다형성을 활용한 덕분에 코드의 중복을 제거하고, 기존 코드를 재사용할 수 있게 됬다. 하지만 입력할 때 실수로 원하지 않는 타입이 들어갈 수 있는 타입 안정성 문제가 발생한다. 예를 들어 integerBox에는 숫자만 넣어야 하고, StringBox에는 문자열만 입력할 수 있어야한다. 하지만 박스에 값을 보관하는 set()의 매개변수가 Obejct 타입이기 때문에 다른 타입의 값을 입력할 수 있다. 그리고 반환 시점에서 Object를 반환하기 때문에 원하는 타입을 정확하게 받을 수 없고 항상 위험한 다운 캐스팅을 시도해야 한다. 결과적으로 이 방식은 타입 안정성이 떨어진다.다형성을 통한 중복 해결 시도 제네릭 적용제네릭을 사용하면 코드 재사용과 안정성이라는 두 마리 토끼를 ..
· Backend/Java
1. 예외 처리 도입1-1. 시작오류 코드어떤 종류의 오류가 발생했는지 구분하기 위해 예외 안에 오류 코드를 보관한다.오류 메세지오류 메세지에 어떤 오류가 발생했는지 개발자가 보고 이해할 수 있는 설명을 담아둔다.    1-2. 예외 복구  1-3. 정상, 예외 흐름 분리  1-4. 리소스 반환 문제  1-5. finally정리자바 예외 처리는 try ~ catch ~ finally 구조를 사용해서 처리할 수 있다. 덕분에 다음과 같은 이점이 있다.정상 흐름과 예외 흐름을 분리해서, 코드를 읽기 쉽게 만든다.사용한 자원을 항상 반환할 수 있도록 보장해준다. 2. 예외 계층2-1. 시작예외를 단순히 오류 코드로 분류하는 것이 아니라, 예외를 계층화해서 다양하게 만들면 더 세밀하게 예외를 처리할 수 있다. ..
Coffebara
'Backend' 카테고리의 글 목록 (8 Page)