728x90
반응형

전체 글 81

Ne(o)rdinary Hackerthon 회고

행사 개요 Ne(o)rdinary Hackerthon이란 UMC 14기, CMC 5기의 크루원들이 모여 1박 2일간 주제를 갖고 개발을 진행하는 해커톤이다. 다른 프로젝트도 진행하고 있고, 그 외에도 일정이 있어 사실 해커톤 참여를 망설였다. 하루 밤 새는 것이 타격이 크기 때문에 주어진 일을 못 할까 걱정이 앞섰기 때문이다. 또한, 제대로된 해커톤이 사실상 처음이라 짧은 시간 내에 개발할 수 있을지, 팀원분들에게 폐를 끼치진 않을지 걱정했다. 하지만 짧은 시간동안 좋은 팀원분들과 개발에 몰두하며 많은 것을 배울 수 있었고, 짧은 시간이지만 해커톤에 몰입한 결과 만족스러운 결과도 얻을 수 있었다! 주제 뉴진스(New Jeans)의 노래 제목을 앱 이름으로 하여 서비스 구상 “뉴진스의 하입보이요”는 202..

연관관계 매핑(양방향)

✅ 양방향 매핑이란? 객체의 연관관계 중 하나인 양방향 매핑은, 사실상 단방향 매핑이 두번 이루어진 것이다. 즉, 개념적으로 두 개의 단방향 매핑을 추상적으로 양방향 매핑이라 칭하는 것이다. ✅ 양방향 연관관계 매핑의 필요성 테이블과 객체를 비교해보자. 테이블에서는 외래 키 하나로 두 테이블의 연관관계를 확인할 수 있다. 외래 키를 가지고 조인하면 두 테이블간 데이터의 결합과 접근성이 자유롭다. 즉, 외래 키 하나만으로 한 컬럼의 연관된 데이터를 획득할 수 있다. 하지만 객체에서는? 객체를 탐방하려면 참조가 쌍방으로 존재해야 한다. 참조가 양방향으로 존재해야 참조와 역참조가 가능한 구조라는 것이다. 이런 패러다임의 차이를 극복하기 위해 양방향 매핑을 한다. 하지만, 엔티티 연관관계를 설정할 때 우선 단방..

Dev/Spring 2023.11.21

연관관계 매핑(단방향)

✅ 연관관계 매핑의 필요성 모델링의 두 방식의 차이점을 비교하며 연관관계의 필요성을 알아보자. ✅ 테이블 중심 모델링 ![Untitled] 테이블 연관관계에 맞추어 객체를 모델링 해보자 🌱 엔티티 매핑 참조 대신에 외래키를 그대로 사용하여 다음과 같이 Member 와 Team 을 작성할 수 있다. @Entity public class Member { @Id @GeneratedValue private Long id; @Column(name = "USERNAME") private Long teamId; ... } @Entity public class Team { @Id @GeneratedValue private Long id; private String name; ... } 🌱 엔티티 다루기 위와 같이 작성..

Dev/Spring 2023.11.21

변경 감지(Dirty Checking)

✅ 영속성 컨텍스트란 ‘엔티티를 영구히 저장하는 환경’이라는 뜻 EntityManager.persist(entity); 하지만 이는 논리적인 개념이다. 엔티티 매니저를 통해서 영속성 컨텍스트에 접근할 수 있다. 아래의 예를 통해 영속성 컨텍스트 내에서 변경 감지(Dirty Checking)를 하는 법을 알아보자. ✅ 엔티티 수정 EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); // 단일 EntityManger를 생성한다. EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); // 트랜잭션 시작한다. (영속성 컨텍..

Dev/Spring 2023.11.20

JPA를 왜 쓸까?

✅ JPA? Java Persistence API 자바 진영의 ORM 기술의 표준 ORM이란?즉, 객체 관계 매핑이다.ORM이라는 프레임워크가 중간에서 매핑하는 것 대중적인 언어에서는 대부분 ORM기술이 존재하여, 데이터베이스와 어플리케이션 간의 인터페이스를 보장한다. (ex. python sqlalchemy) 객체는 객체대로 설계 / 관계형 데이터베이스는 관계형 데이터베이스대로 설계 Object-Relational Mapping ✅ JPA의 동작 어플리케이션과 JDBC 사이에서 동작한다. ✅ 표준 명세 JPA는 기본적으로 인터페이스의 모음이다. 이 JPA 표준 명세를 구현한 3가지 구현체가 존재한다. Hibernate EclipseLink DataNucleus ✅ JPA 사용 이유? SQL 중심적인 개..

Dev/Spring 2023.11.20

영속성 컨텍스트란

Overview JPA의 '영속성 컨텍스트'라는 논리적인 개념에 대해 다룬다. JPA의 2요소 JPA에서 가장 중요한 2가지라 하면, 객체와 RDBMS를 매핑하는 연관관계 영속성 컨텍스트 이 두가지가 있다. 웹 어플리케이션에서 사용자는 EntityManager를 할당받고, Database에 접근하기 위해 EntityManager로 엔티티를 영속성 컨텍스트에 집어 넣는다. 즉, 영속성 컨텍스트는 엔티티를 영구 저장하는 환경이라는 뜻이다. 일반적으로 EntityManager.persist(entity);구문을 통해 엔티티는 영속성 컨텍스트에 들어간다. 엔티티의 생명주기 비영속 영속성 컨텍스트와 연관이 없는 상태. 그저 생성만 된 객체를 의미한다. 영속 영속성 컨텍스트가 관리하는 객체 준영속 영..

Dev/Spring 2023.11.20

Ch06. API URL, Project Configuration

Overview EndPoint와 Request/Reply 데이터를 설계하자. 협업을 편리하게 진행하기 위한 API 명세서를 작성하자. API란 Appliation Programming Interface(API) 즉, Application을 Programming할 때 사용되는 Interface를 말한다. 소프트웨어 사이에 복잡한 것들을 감추고, 추상화를 통해 손 쉽게 마이그레이션 혹은 응용을 할 수 있게끔 하는 도구의 일종이다. REST API 웹 어플리케이션에서는, REST API를 자주 사용한다. REST API란 말 그대로 RESTful한 API를 일컫는다. REST Representational State Transfer 의 약자로, 자원을 이름으로 구별하여 자원의 상태(state)를 주고 받는 ..

Ch05. SQL

Overview 요구사항에 맞게 쿼리를 작성하는 방법에 대해 고민하고, 이를 통해 쿼리를 만들어보자. Entity-Relationship Diagram Requirements 진행 중/완료 미션을 모아서 보는 페이지 SELECT * FROM Mission WHERE mission_status = 'IN_PROGRESS' OR mission_status = 'COMPLETED';한 유저에게 할당된 미션에 대해, 진행 중 혹은 진행 완료된 미션을 모아서 볼 수 있는 쿼리 리뷰 작성하는 페이지 INSERT INTO Review (grade, title, content, reply, visitDate, store_id, user_id) VALUES (:grade, :title, :c..

[우아한 테크코스 6기 - 프리코스] 4주차 회고

Overview 우아한 테크코스 6기 프리코스 중 4주차 크리스마스 프로모션을 구현하고, 이에 대한 회고이다. Github UML 0. 들어가며 0.1 4주차의 의도? ‘클래스를 분리한다’ 가 객체지향의 특징 그 자체라고 생각한다. 이 목표를 지키려면 수많은 조건을 지켜야 하기 때문이다. 3주차에서 한 번 강조된 이 목표를, 4주차에서 한 번 더 강조하는 이유가 바로 이것 때문이라고 생각한다. 클래스가 정말 예쁘게 분리된 코드를 작성하기에 한 주만으로 당연히 부족했고, 여러 시행착오를 겪으며 4주차에 임하기를 바라는 것이 우테코의 의도였다면 다행히 조금은 이를 만족한 것 같다. 0.2 미션에 임하는 마음 물론 클래스를 분리한다는 것은 4주차에 와서도 어려운 일이었다. 클래스를 분리하고, 메서드를 최소단위..

728x90
반응형