웹 애플리케이션 제작 ① - 프로젝트 환경설정 웹 애플리케이션 만들기 진행 순서 스프링 프레임워크와 JPA를 사용해서 웹 애플리케이션을 개발할 수 있도록 프로젝트 환경 설정 요구사항을 분석해서 도메인 모델과 테이블을 설계 실제 애플리케이션 기능 구현 프로젝트 환경설정 진행 순서 프로젝트 폴더 구조를 분석 메이븐에 사용할 라이브러리를 지정하도록 설정 스프링 프레임워크 환경 설정 또한 웹 서버를 실행하기 위해 메이븐의 톰캣 플러그인을 사용하도록 설정함 프로젝트 구조 메이븐이 제공하는 표준 프로젝트 구조를 사용하도록 함 메이븐과 사용 라이브러리 관리 메이븐 설정 파일인 pom.xml을 열어서 현재 프로젝트 정보와 사용할 라이브러리를 지정하도록 함 라이브러리의 경우 부분의 에 groupId + artifactI..
값 타입 값 타입 JPA의 데이터 타입은 엔티티 타입과 값 타입으로 나눌 수 있으며 엔티티 타입은 객체이기 때문에 식별자를 통해 지속적으로 추적할 수 있지만 값 타입은 단순히 값으로 사용하는 자바 기본 타입이나 객체를 말하기 때문에 식별자가 없고 숫자나 문자같은 속성만 있으므로 추적할 수 없음 값 타입에는 자바가 제공하는 기본 데이터 타입인 기본값 타입, 사용자가 직접 정의하는 값 타입인 임베디드 타입, 하나 이상의 값 타입을 저장할 때 사용하는 컬렉션 값 타입이 존재 기본값 타입 자바가 제공하는 기본 데이터 타입 식별자 값이 없어 엔티티에 의존하므로 엔티티 인스턴스를 제거하면 함께 제거되게 되므로 값 타입은 공유하지 않음 만약 같은 값을 사용하고 싶다면 복사를 이용하도록 함 임베디드 타입 (복합 값 타..
엔티티 매핑 기초 객체의 참조와 테이블의 외래 키 매핑 객체는 참조를, 테이블은 외래 키를 사용해서 관계를 맺으므로 객체의 참조와 테이블의 외래 키를 매핑하는 것이 중요함 연관관계의 방향에는 단방향, 양방향이 있고 연관관계의 다중성에는 다대일, 일대다, 일대일, 다대다가 있음 객체를 양방향 연관관계로 만든 경우에는 연관관계의 주인을 정해야 함 단방향 연관관계 (예 : 다대일 단방향 연관관계) 회원 객체는 Member.team 필드로 팀 객체와 연관관계를 맺으며 회원 객체와 팀 객체는 단방향 관계를 갖게 됨 그러므로 Member.team 필드를 통해 객체 그래프 탐색을 하여 회원의 팀을 알 수 있지만 반대로 팀의 회원을 알 수 없음 회원 테이블은 TEAM_ID 외래 키로 팀 테이블과 연관관계를 맺으며 회원..
JPA 소개 SQL을 직접 다룰 때 발생하는 문제점 개발자는 객체지향 애플리케이션과 데이터베이스 중간에서 객체 모델링과 관계형 데이터베이스의 다른 구조를 가지므로 CRUD를 위해 너무 많은 SQL과 JDBC API를 위한 데이터 접근 계층 코드를 작성해 변환 작업을 직접 해야 함 요구사항이 추가되었을 때 필드를 추가하기 위해 많은 SQL과 JDBC API 코드 수정이 필요하며 연관된 객체를 사용 가능 여부도 SQL에 전적으로 달리게 되므로 SQL에 모든 것을 강하게 의존하게 됨 이를 해결하기 위해서는 JPA가 제공하는 API를 사용해 개발자 대신 JPA가 매핑 정보를 보고 적절한 SQL을 생성하도록 함 패러다임의 불일치 객체와 관계형 데이터베이스는 지향하는 목적이 서로 다르므로 둘의 기능과 표현 방법이 ..
📌 시험기간 회의 일정 기말고사 기간 : 11/28 ~ 12/25 6차 회의는 12/28에 진행 6차 회의 전까지 각자 스터디 진행 후 완료 표시하기 📌 스터디 기간 / 개발 기간 체크 📌 스터디 일정 논의 1차부터 5차까지 강의 나눠서 각자 진행하기 완료 후 진도표에 체크 12월 28일까지 완료 📌 6주차 할 일 스터디 확인 개발 일정 시작
Django란 Django란? 파이썬으로 만들어진 무료 오픈소스 웹 애플리케이션 프레임워크로 모델-뷰-컨트롤러 (MVC) 패턴을 따르고 있음 모델은 데이터 정보를 담고, 뷰는 어떤 데이터가 표시될 것인지 정의하며, 템플릿은 데이터가 어떻게 표시되는지를 정의 (MVT) Django에서 템플릿을 띄워주는 과정 Url로 요청 받아서 우리가 url을 적어준 urls.py로 가서 해당 요청에 맞는 url 분석 우리가 썼던 views 함수 이름을 통해 해당 url에 연결된 view로 가서 함수를 찾아 기능 수행 view는 로직을 실행하며 데이터베이스 관련 처리를 model을 사용하여 결과 반환 마지막으로 vies는 최종 결과는 templates (html 파일)을 클라이언트에게 보내줌 Django 개발 환경 설정 ..