본문 바로가기

반응형

전체 글

(218)
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..
[JPA] 엔티티 매핑 엔티티 매핑 소개 객체와 테이블 매핑: @Entity, @Table 필드와 컬럼 매핑: @Column 기본 키 매핑: @Id 연관관계 매핑: @ManyToOne, @JoinColumn 객체와 테이블 매핑 - @Entity @Entity가 붙은 클래스는 JPA가 관리하는 엔티티 입니다. JPA를 사용해서 테이블과 매핑되는 클래스에 @Entity 어노테이션이 필수로 사용되어야 합니다. 기본 생성자는 필수입니다.(파라미터가 없는 public또는 protected 생성자) final 클래스, enum, interface, inner 클래스에 사용할 수 없습니다. 저장할 필드에 final 사용하면 안됩니다. @Entity 에는 name 속성이 있습니다. JPA에서 사용할 엔티티 이름을 지정하는데 사용됩니다. 속성..

반응형