본문 바로가기

반응형

Programming

(163)
문서 로드 이전, 이후에 따른 함수 정의 - onload, DOMContentLoaded 문서의 로드 시점, 즉 해당 페이지를 구성하는 모든 리소스가 로드된 이후/이전 상태를 인식하여 특정 함수를 호출하고 싶은 사람들을 위해 onload와 DOMContentLoaded를 제공한다. onload onload는 css, image와 같은 페이지를 구성하는 각종 리소스가 모든 로드된 이후 실행된다. onload 사용법 window.addEventListener('load', (event) => { - 내용 - }); window.onload = (event) => { - 내용 - }; DOMContentLoaded HTML 문서가 로드되자마자 바로 실행된다. css, image와 같은 서브 리소스들의 로드가 완료될 때까지 기다리지 않는다. DOMContentLoaded 사용법 document.ad..
const 키워드로 변수 선언 일반적으로 자바스크립트에서 const는 상수(constant)를 선언하기 위해 사용한다. const의 주요 특징은 다음과 같다. 선언과 동시에 반드시 초기화 작업을 해야 한다. 그렇지 않으면 아래와 같은 문법 에러가 발생한다. 블록 레벨 스코프를 가진다. 한 번 선언한 변수는 재할당이 불가능하다. 출처 http://www.yes24.com/Product/Goods/92742567
var 키워드로 선언된 변수는 함수 레벨 스코프만 인정한다 var 키워드로 선언된 변수는 함수 레벨 스코프만 인정한다. 아래 코드는 var 키워드로 선언된 변수 x 가 함수가 아닌 코드 블록 내부에서 선언된 모습이다. 함수 내부에 선언되지 않았으므로 변수 x는 전역 변수로 인식된다. 따라서 상위에 선언된 변수 x의 값에 또 다른 값이 재할당 되는 상황이 발생한다. var x = '원래 값'; if (true) { var x = '의도치 않게 변경될 수 있는 값'; } console.log(x); // 의도치 않게 변경될 수 있는 값 따라서 if, for, while, try/catch와 같은 코드 블록 내부에 선언되는 변수를 선언 시 var 키워드를 사용해야 한다면 주의해야 한다. 출처 http://www.yes24.com/Product/Goods/92742567
[Mac] IntelliJ 자동완성 기능 활성화 하기 IntelliJ에서 Command + , 키를 누르면 Preferences 창이 활성화 됩니다. Keymap 탭에서 Completion 키워드로 검색하면 Code Completion 단축키 설정이 나오는데, 이것을 자신이 원하는 단축키로 변경하면 됩니다. 저는 한 손으로 사용하기 편하도록 Control + Space로 지정했습니다. IntelliJ에서 단축키를 설정해도 자동완성이 동작하지 않는다면 시스템 키보드 단축키 설정을 변경하면 됩니다 시스템 환경설정 > 키보드 > 입력 소스 탭으로 이동해서 이전 입력 소스 선택 체크를 해제하면 됩니다. 이제 IntelliJ로 다시 돌아가서 자동 완성 단축키를 사용할 수 있습니다. 잊어버리기 쉽고 별로 중요해 보이지 않지만, 필요할 때 찾을 수 없으면 짜증나고 시간..
[JPA] 양방향 연관관계와 연관관계의 주인 양방향 매핑은 DB에서 JOIN 구문을 통해 양방향으로 필요한 값을 가져오는 것처럼 객체 또한 양방향으로 통신할 수 있는 구조를 만드는 것입니다. DB의 테이블은 방향 이라는 개념이 없이 필요에 의해 JOIN 구문을 사용해서 원하는 값을 가져오면 됩니다. 하지만 문제는 객체를 다룰 때 발생합니다. 아래 이미지를 보면 단방향 구조에서 Member에서 Team을 참조할 수 있지만, Team에서 Member를 참조할 수 없습니다. 단방향 양방향 위 내용을 참고해서 엔티티 클래스를 작성합니다. Team에서 Member는 1:N 관계이기 때문에 @OneToMany 입니다. mappedBy 속성은 해당 필드가 어떤 필드와 연결되어 있는지 명시하는 속성입니다. 이 필드는 Member 객체의 team 필드와 매핑되어 ..
[JPA] H2 Database 새로운 데이터베이스 생성 오류 관련 Mac 기준으로 작성되었습니다. H2 데이터베이스 사용 시 기본적으로 test 데이터베이스에 테이블을 생성해서 연습합니다. 만약 새로운 데이터베이스를 생성하고 싶은 경우 상단의 H2 아이콘을 우측 클릭하여 새로운 데이터베이스를 생성합니다. 새로운 데이터베이스를 생성 시 출력되는 URL을 가져다가 H2 연결 시 사용하면 됩니다. 그리고 만약 테이블을 생성했지만 H2에서는 생성된 테이블을 확인할 수 없는 경우가 있는데요, 그때는 Maven Repository에서 H2 버전을 1.3.xx 버전으로 다운그레이드 합니다. 저는 이 방법으로 문제를 해결했습니다.
[JPA] 기본 키 매핑 기본 키 매핑 어노테이션 @Id @GeneratedValue 기본 키 매핑 방법 직접 할당: @Id만 사용. 자동 생성: @GeneratedValue 사용. 직접 할당이 아닌 값을 생성해서 사용하고 싶다면 @GeneratedValue 어노테이션의 strategy 속성을 추가하면 됩니다. 생성 전략은 네 가지가 있습니다. 자동 생성 전략 - IDENTITY 기본 키 생성을 데이터베이스에 위임합니다. 주로 MySQL, PostgreSQL, SQL Server, DB2에서 사용합니다. ex) MySQL의 AUTO_INCREMENT JPA는 보통 트랜잭션 커밋 시점에 INSERT SQL 실행합니다. AUTO_INCREMENT는 데이터베이스에 INSERT SQL을 실행한 이후에 ID값을 알 수 있습니다. IDEN..
[JPA] 필드와 컬럼 매핑 아래 요구사항이 추가되었다고 가정합니다. 회원은 일반 회원과 관리자로 구분한다. 회원 가입일과 수정일이 있어야 한다. 회원을 설명할 수 있는 필드가 필요하다. 이 필드는 길이 제한이 없다. 요구사항에 따라 엔티티 클래스를 구성합니다. import javax.persistence.*; import java.util.Date; @Entity public class Member { @Id private Long id; // DB 컬럼명 설정 @Column(name = "name") private String name; private int age; @Enumerated(EnumType.STRING) private RoleType roleType; @Temporal(TemporalType.TIMESTAMP) p..

반응형