- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- typescript
- CRUD
- Git
- TMIL
- LEVEL 1
- TIL
- java
- 오늘도 개발자가 안된다고 말했다
- LEVEL1
- 배포
- 아고라스테이츠
- CSS
- 면접을 위한 cs 전공지식 노트
- 코어 자바스크립트
- 코딩테스트
- TWIL
- 프로그래머스
- Refactoring
- LEVEL 2
- react
- Docker
- 리팩터링 2판
- MariaDB
- 에러핸들링
- 알고리즘
- First Project
- javascript
- mongodb
- sql
- Err-Handling
목록전체 글 (363)
성장에 목마른 코린이
@Entity 해당 어노테이션을 붙이게 되면 해당 클래스가 데이터베이스의 테이블과 1대1 매칭이 됨 속성 - Name : JPA에서 사용할 엔티티 이름을 지정 (보통 기본값인 클래스 이름을 사용) 주의사항 - 기본 생성자는 필수 (JPA가 엔티티 객체 생성 시 기본 생성자를 사용) - final 클래스, enum, interface, inner class에는 사용할 수 없음 - 저장할 필드에 final 사용 불가 @Table(name="??") ??에 해당하는 테이블과 매핑됨 생략시 매핑한 엔티티 이름을 테이블 이름으로 사용 속성 - Name : 매핑할 테이블 이름 (default. 엔티티 이름 사용) - Catalog : catalog 기능이 있는 DB에서 catalog를 매핑 (default. DB ..
JPA Java Persistence Api를 뜻하며 ORM을 제공하는 Java 표준 Api 입니다. ORM (Object-Relational Mapping) Java 객체를 데이터베이스 테이블에 매핑하거나 그 반대로 매핑하는 것을 의미합니다. JPA의 기능: Java 객체에서 데이터베이스의 관계형 테이블로 데이터를 유지, 읽기 및 관리하기 위한 인터페이스를 제공합니다. JPA를 써야하는 이유: 객체 모델(Java)과 관계형 모델(Database) 불일치로 인해 코드가 방대해지고 복잡해지는 불편함을 줄이기 위해 관계형 객체는 표 형식으로 표시되는 반면 객체 모델은 객체 형식의 상호 연결된 그래프로 표시됩니다. RDBMS에서 객체 모델을 저장하고 검색하는 동안 다음과 같은 이유 일부 불일치가 발생합니다. ..
@Data Data Annotation은 @Getter, @Setter, @RequiredArgsConstructor, @ToString, @EqualsAndHashCode 를 한꺼번에 설정해주는 매우 유용한 Annotation입니다. 클래스 레벨에서 @Data를 붙여주면, 모든 필드를 대상으로 접근자와 설정자가 자동으로 생성되고, final 또는 @NonNull 필드 값을 파라미터로 받는 생성자가 만들어지며, toString, equals, hashCode 메소드가 자동으로 만들어집니다. @Getter @Setter (접근자/설정자 자동 생성) Lombok에서 가장 많이 사용되는 Annotation 입니다. 예를 들어, x라는 필드에 선언하면 자동으로 getX()와 setX() 메소드를 생성해줍니다. ..
.asList() 배열을 ArrayList로 반환해 자바 컬렉션 API를 사용할 수 있습니다. 다만 반환되는 ArrayList는 크기가 고정된 타입으로 새롭게 값을 추가할 수 없습니다. .toString() 모든 자바 Object에 포함된 메서드로 기본은 Object ID를 출력합니다. 배열 자체를 System.out.println() 등에서 출력하면 데이터가 출력되지 않고 Object ID가 출력됩니다. Arrays.toString()을 이용하면 데이터를 출력할 수 있습니다. .sort() 배열 원소를 정렬합니다. 원본 배열 자체가 원소들이 정렬된 순서로 변경됩니다. sort(array, Comparator), sort(array, int fromindex, int toindex)를 이용해 내림차순 정..
1. .equals() 두개의 문자열이 동일한 값을 가지고 있는지 비교하여 결과값을 리턴한다. 2. .indexOf() 문자열에서 특정 문자가 시작되는 인덱스를 리턴한다 두글자를 indexOf에 넣어주어도 앞글자가 먼저나오는 인덱스를 리턴해준다. 공백문자도 문자로 인식해서 별도의 문자로 넣는다. 3. .substring() substring의 사용방법은 2가지가 있다. substring(int startindex)은 자를 문자열의 시작지점만 알려주면 시점부터 해당 문자열의 끝까지가 나온다. substring(int startindex, int endindex)는 자를 문자열의 시작점과 자를 문자열의 끝+1 이 들어간다. 예를 들어 5,8을 넣으면 인덱스 5,6,7에 해당하는 문자열만 뽑아집니다. 4. ...
Spring Framework는 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서 간단히 Spring이라고도 불립니다. 동적인 웹사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있습니다. 대한민국 공공기관의 웹서비스 개발 시 사용을 권장하고 있는 전자정부 표준 프레임워크의 기반 기술로서 쓰이고 있습니다. Spring의 장점 1. 경량 컨테이너 2. IoC(Invertion of Control: 제어 역행) 3. DI(Dependency Injection: 의존성 주입) 4. AOP(Aspect-Oriented Programming: 관점지향 프로그래밍) Spring Boot Spring Framework는 기능이 많은 만큼 환경설정이 복잡한 편입니다. 이에 어려움을 느끼는 사용자들을 위해 나온 ..
Java의 자료구조는 크게 Collection(List, Queue, Set)과 Map으로 나눌 수 있습니다. List 리스트는 순서를 가지고, 원소의 중복이 허용된다는 특징이 있습니다. ArrayList ArrayList는 배열을 이용하여 만든 리스트입니다. 기본 크기는 10이지만 원소가 늘어나면 더 큰 배열에 옮겨담습니다. 배열의 특징 때문에 조회가 빠르다는 장점이 있지만, 삽입/삭제가 느리다는 단점이 있습니다. ArrayList를 사용한다면, 조회를 많이 하는 경우에 사용하는 것이 좋습니다. LinkedList LinkedList는 노드와 포인터를 이용하여 만든 리스트입니다. next와 prev로 양방향 포인터를 가집니다. 단순히 기존 포인터를 끊고 새로운 노드에 연결하면 되기에 LinkedList..
DTO란 계층간 데이터 교환을 위해 사용하는 객체 (Java Beans)입니다. DTO 기법을 사용하면 중요한 정보를 노출시키지 않고 두 시스템(API와 서버 등) 간 통신을 원활하게 촉진할 수 있습니다. Python, C++, Java 같은 객체 지향 프로그래밍(OOP) 언어 환경에서 DTO를 사용할 수 있습니다. 따라서 DTO는 개발과 업데이트가 용이합니다. OOP 환경은 "호출" 시스템을 이용합니다. 각 시스템은 데이터 조회와 같아서 시간과 처리 속도가 필요합니다. 이때 주의를 기울이지 않으면 다음과 같이 숨기고 싶은 중요한 데이터가 호출로 인해 노출될 수 있습니다. 회사 출입 시 직원에게 이름과 사진을 요구할 수 있습니다. 이때 신원 확인을 위해 해당하는 데이터를 제공해야 합니다. 하지만 데이터베..
java.net.InetAddress 클래스는 IPv4와 IPv6 주소에 대한 자바의 고수준 표현 방식이다. InetAddress.getLocalHost() 메서드는 실제 호스트네임과 IP주소를 얻기 위해 DNS로 연결을 시도한다. 그리고 해당 정보를 얻는 데에 실패할 경우, 메서드는 대신 루프백 주소를 반환한다. 루프백 주소는 일반적으로 호스트네임이 localhost이고 IP 주소가 127.0.0.1이다. InetAddress 클래스는 호스트네임을 문자열로 반환하고 IP 주소를 문자열과 바이트 배열로 반환하는 네개의 Get 메서드를 제공한다. 1. getHostName() InetAddress 객체에 의해 표현되는 IP 주소에 해당하는 호스트네임을 포함한 String을 반환한다. 만약 장비가 호스트네임..
기존 루프문 처리의 문제점 기존 Java에서 컬렉션 데이터를 처리할때는 for, foreach 루프문을 사용하면서 컬렉션 내의 요소들을 하나씩 다루었습니다. 가단한 처리나 컬렉션의 킉가 작으면 큰 문제가 아니지만 복잡한 처리가 필요하거나 컬렉션의 크기가 커지면, 루프문의 사용은 성능저하를 일으키게 되었습니다. 스트림의 등장 스트림은 Java8에서 추가된 기능으로 컬렉션 데이터를 선언형으로 쉽게 처리할 수 있습니다. 복잡한 루프문을 사용하지 않아도 되며, 루프문을 중첩해서 사용해야 되는 최악의 경우도 더이상 없어졌습니다. 또한 스트림은 병렬처리(Multi thread)를 별도의 멀티 스레드 구현없이도 쉽게 구현할 수 있습니다. 스트림과 컬렉션의 차이 1. 데이터 계산 시점 컬렉션: 모든 요소는 컬렉션에 추..
Annotation은 클래스와 메서드에 추가하여 다양한 기능을 부여하는 역할을 합니다. Annotation을 활용해 Spring Framework는 해당 클래스가 어떤 역할인지 정하기도 하고, Bean을 주입하기도 하며, 자동으로 getter나 setter를 생성하기도 합니다. 특별한 의미를 부여하거나 기능을 부여하는 등 다양한 역할을 수행할 수 있습니다. Annotation을 이용하면 코드량이 감소하고, 유지보수하기 쉬우며, 생산성이 증가됩니다. @Bean Spring 컨테이너가 관리하는 자바 객체를 빈(Bean)이라 한다. Bean Annotation은 개발자가 제어가 불가능한 외부 라이브러리와 같은 것들을 Bean으로 만들 때 사용합니다. 즉, 개발자가 직접 작성한 Class에 @Bean 선언은 불..