2019/09

라우팅이란? 라우팅 이란 웹 페이지 간의 이동 방법을 말함. 라우팅은 현대 웹 앱 형태 중 하나인 싱글 페이지 애플리케이션(SPA)에서 주로 사용 뷰 라우터 뷰 라우터는 뷰에서 라우팅 기능을 구현할 수있도록 지원하는 공식 라이브러리. 뷰 라우터를 이용하여 뷰로 만든 페이지 간에 자유롭게 이동할 수 있음 페이지 이동 태그. 화면에서는 로 표시되며 클릭하면 to에 지정한 URL로 이동 페이지 표시 태그. 변경되는 URL에 따라 해당 컴포넌트를 뿌려주는 영역 뷰 라우터 실습하기 메인 컴포넌트로 이동 로그인 컴포넌트로 이동 네스티드 라우터 네스티드 라우터(Nested Router)는 라우터로 페이지를 이동할 때 최소 2개 이상의 컴포넌트를 화면에 나타낼 수 있음 네임드 뷰 네임드뷰(Naed View)는 특정 페..
Vue의 경우 컴포넌트로 화면을 구성하므로 같은 웹 페이지라도 데이터를 공유할 수 없음 그 이유는 컴포넌트마다 자체적으로 고유한 유효 범위(Scope) 를 갖기 때문 각 컴포넌트의 유효 범위가 독립적이기 때문에 다른 컴포넌트의 값을 직접적으로 참조할 수가 없음 상 하위 컴포넌트 관계 직접 다른 컴포넌트의 값을 참조할 수 없기 때문에, 뷰 프레임워크 자체에서 정의한 컴포넌트 데이터 전달 방법을 따라야 한다. 기본적인 데이터 전달 방법은 바로 상위(부모) - 하위(자식) 컴포넌트 간의 데이터 전달 방법 하위 컴포넌트 — 이벤트발생 —> 상위 컴포넌트 상위 컴포넌트 — props 전달 —> 하위 컴포넌트 하위에서 상위는 기본적으로 이벤트만 전달할 수 있음 상위에서 하위 컴포넌트로 데이터 전달하기 상위컴포넌트에..
컴포넌트(component)란 조합하여 화면을 구성할 수 있는 블록을 의미 컴포넌트를 활용하면 화면을 빠르게 구조화하여 일괄적인 패턴으로 개발할 수 있음. 화면의 영역을 컴포넌트로 쪼개서 재활용할 수 있는 형태로 관리하면 나중에 코드를 다시 사용하기가 훨씬 편리함. 컴포넌트 등록하기 전역(Global) : 여러 인스턴스에서 공통으로 사용할 수 있는 컴포넌트 지역(Local) : 특정 인스턴스에만 유효한 범위를 갖음 전역 컴포넌트 등록 라이브러리 로딩 후 Vue 변수를 이용하여 등록 Vue.component("컴포넌트 이름", { // 컴포넌트 내용 }); 컴포넌트 이름 ⇒ template 속성에서 사용할 HTML 사용자 정의 태그(custom tag) 컴포넌트 내용 ⇒ 컴포넌트 태그가 실제 화면의 HTM..
뷰 인스턴스 라이프 사이클 뷰의 라이프 사이클을 이해해야 하는 이유는 그 시점에 원하는 로직을 구현할 수 있기 때문이다. 예를 들어, 컴포넌트가 생성되자마자 서버에 ajax요청을 날려서 데이터를 받아오고 싶으면, created나 beforeMount시점에 ajax요청을 보낼 수 있다. 주로 사용되는 라이프 사이클 훅 목록 created beforeMount mounted destroyed beforeCreate data속성과 methods속성이 아직 인스턴스에 정의되어 있지 않고, 돔과 같은 화면 요소에도 접근할 수 없음 created data속성과 methods속성이 정의되었기 때문에 this.data, this.fetchData()같은 로직들을 이용하여 data속성과 methods속성 값에 접근하여 ..
뷰 인스턴스는 뷰로 화면을 개발하기 위해 필수적으로 생성해야 하는 기본 단위 뷰 인스턴스 생성 new Vue({ ... }) new Vue() 생성자 Vue 생성자는 뷰 라이브러리를 로딩하고 나면 접근할 수 있음. 생성자에 뷰로 개발할때 필요한 기능들을 미리 정의해놓고 그 기능을 재정의하여 편리하게 사용자들이 사용할 수 있음 뷰 인스턴스 옵션 속성 뷰 인스턴스 옵션 속성은 인스턴스를 생성할 때 재정의할 data, el, template 등의 속성을 의미 el : 뷰로 만든 화면이 그려지는 시작점을 의미. 뷰 인스턴스로 화면이 렌더링할 때 화면이 그려질 위치의 돔 요소를 지정 template : 화면에 표시할 HTML, CSS등의 마크업 요소를 정의하는 속성. 뷰의 데이터 및 기타 속성들도 함께 화면에 그..
1.준영속 영속 → 준영속 상태 변화를 알아보자. 준영속 : 영속성 컨텍스트가 관리하는 영속 상태의 엔티티가 영속성 컨텍스트에서 분리(detached)된 것을 준영속 상태라 한다. 준영속 상태의 엔티티는 영속성 컨텍스트가 제공하는 기능을 사용할 수 없다. 준영속상태로 만드는 방법 em.detach(entity) : 특정 엔티티만 준영속 상태로 전환한다. em.clear() : 영속성 컨텍스트를 완전히 초기화한다. em.close() : 영속성 컨텍스트를 종료한다. 1-1. 엔티티를 준영속 상태로 전환 : detach() public void testDetached(){ ... // 비영속 상태 Member member = new Member(); member.setId("corn"); member.set..
영속성 컨텍스트의 특징 영속성 컨텍스트와 데이터베이스 저장 JPA는 보통 트랜잭션을 커밋하는 순간 영속성 컨텍스트에 새로 저장된 엔티티를 데이터베이스에 반영한다. 이것을 플러시(flush)라고 한다. 영속성 컨텍스트가 엔티티를 관리할때 장점 1차 캐시 동일성(identity) 보장 트랜잭션을 지원하는 쓰기 지연(transactional write-behind) 변경 감지(Dirty Checking) 지연 로딩(Lazy Loading) 1. 엔티티 조회 영속성 컨텍스트는 내부에 캐시를 가지고 있다. 이 캐시를 1차 캐시라 하며 영속 상태의 엔티티는 모두 이곳에 저장된다. 1차 캐시 영속성 컨텍스트 내부에 Map이 존재하며, 키는 @Id, 값은 엔티티 인스턴스이다. // 엔티티 생성(비영속) Memeber ..
단위/통합 테스트 전용 스타터 폼 spring-boot-starter-test 만 있으면 손쉽게 테스트가 가능하다. (Junit, Hamcrest, Mockito 등이 존재) pom.xml 추가 org.springframework.boot spring-boot-starter-test test spring-test, junit, hamcrest, objenesis, mockito JAR 파일 의존성 스프링 부트 테스트 기본 기본 스프링 데이터 테스트 코드 import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframewor..
영속성 관리 JPA가 제공하는 기능 엔티티와 테이블을 매핑하는 설계부분 매핑한 엔티티를 실제 사용하는 부분 매핑한 엔티티를 엔티티 매니저(Entity Manager)를 통해 어떻게 사용하는것일까? 엔티티 매니저는 엔티티를 저장하고, 수정하고, 삭제하고, 조회하는 등 엔티티와 관련된 모든 일을 처리한다. ⇒ 엔티티를 관리하는 관리자 1. 엔티티 매니저 팩토리와 엔티티 매니저 // Factory, 비용이 많이듬 EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpabook"); // Factory에서 엔티티 매니저 생성, 비용이 거의 안듬 EntityManager em = emf.createEntityManager(); EntityMan..
1. 스프링 데이터 JPA 소개 스프링 데이터 JPA 스프링 프레임워크에서 JPA를 편리하게 사용할 수 있도록 지원하는 프로젝트 데이터 접근 계층(DAO)을 개발할 때 구현 클래스 없이 인터페이스만 작성해도 개발을 완료(지루하게 반복되는 CRUD 문제를 세련된 방법으로 해결, 인터페이스만 작성하면 실행시점에 스프링 데이터 JPA가 구현 객체를 동적으로 생성해서 주입) public interface MemberRepository extends JpaRepository{ Member findByUsername(String username); } public interface ItemRepository extends JpaRepository{ } 2. 공통 인터페이스 기능 스프링 데이터 JPA는 간단한 CRU..
깡냉쓰
'2019/09 글 목록