-
리눅스 커널과 배포판의 프리 소프트웨어 리눅스는 리눅스 커널(OS 핵심)과 리눅스 배포판을 구성하는 프리 소프트웨어(배포판 사용자들에게 편의 제공을 위한)에 의해 구성됨 배포판에는 ubuntu, opensuse, redhat 등이 있음 터미널 에뮬레이터와 쉘 그리고 쉘프롬프트 터미널 (에뮬레이터) : 쉘에 접근할 수 있도록 하는 프로그램 쉘 : 사용자의 명령을 운영체제에 전달(번역)하여 실행될 수 있도록 함 쉘프롬프트 : 쉘이 입력가능할 때 나타나는 명령줄 달러($)가 아닌 # 이라면 현재 슈퍼 유저로 쉘을 사용할 수 있는 것 [ubuntu] $ 터미널 세션 종료 :...
-
스프링부트 알고 개발하기 (JPA) 자바를 사용해서 데이터를 유지하는 기술(그 중 ORM)의 표준 스펙 : 인터페이스 ORM : 객체 - 테이블 레코드를 맵핑해서, 로직 처리와 데이터베이스 데이터 관리 한방에 할 수 있음, 객체지향적으로 개발할 수 있음 테이블 주도 개발이 아닌 객체 주도 개발을 할 수 있음 : 비즈니스 로직에 더 신경쓰고 개발할 수 있음 단점 : 쿼리를 직접 만들지않고, 메소드로 다루기때문에 성능 튜닝이 어려움, 쿼리를 직접 만들어서 실행시킬 수도 있지만 쿼리에 얽메이는 개발을 하게되므로 ORM 장점을...
-
자바 어노테이션 java 1.5부터 추가된 기능 소스코드에 메타코드(추가적인 정보)를 붙이는 것 추가적인 정보에 따라 기존의 실행과 다르게 실행될 수 있음 컴파일, 런타임 모두 활용 가능 컴파일 타임에 메타 데이터가 적용된 코드에 코드를 추가할 수도 있고, 런타임 때 메타데이터에 의해 실행 흐름이 바뀔 수도 있음 런타임에는 리플렉션을 활용해서 어노테이션이 적용되어있는지 체크할 수 있음 @Override public String toString() { } 사용자 정의 가능함 : 정의 -> 사용 -> 실행 Annotation 파일 만들기 Annotation 적용되었는지 리플렉션으로 확인 /*...
-
Time BaseEntity 만들기 - 생성시간, 수정시간 기록 자동화 Entity 클래스: 데이터베이스 테이블과 연결되는 클래스 Entity 객체: 테이블의 레코드, 객체지향적으로 생각하기(인스턴스) Entity 중 생성일 - 수정일이 필요한 Entity가 있을텐데, 클래스마다 정의하지않고 상속관계 활용하기 참고 : 기억보다 기록을, SpringBoot & JPA로 간단 API 만들기 @Getter @MappedSupperclass @EntityListeners(AuditingEntityListener.class) public abstract class TimeEntity { @CreateDate private LocalDateTime createdDate; @LastModifiedDate private LocalDateTime modifiedDate; } @NoArgsConstructor @Getter @Setter @ToString @Entity public class Question extends TimeEntity { } @MappedSupperclass : 여러 엔티티의...
-
스프링부트 h2 데이터베이스 연결 - 사용하기 데이터베이스 사용 : 메모리에 저장하면 프로세스 종료 후 데이터가 모두 날아감, 데이터를 공유하기위해서 복잡도가 높아질 수 있음 복잡도 문제 : 접근 객체(XXXRepository)만 만들면 됨, 같은 곳 접근 JDBC : DB 변경할 때마다 코드 변경을 최대한 없애기위해 표준 인터페이스를 마련함 h2 : 순수 자바로 짜여진 임베디드 데이터베이스, jar 파일만 임포트하면 사용할 수 있음(타 db는 드라이버 임포트까지 해줘야함) JPA : 데이터베이스 테이블을 객체지향적으로 다루는 ORM의 표준 인터페이스 - 구현체로 Hibernate 등이...