전체 글 110

연관관계 매핑

연관관계 매핑 RDBMS를 사용할 때는 각 도메인에 맞는테이블을 설계하고 연관관계를 설정해서 조인(Join) 등 기능을 활용함 JPA를 사용하는 어플리케이션에서도 테이블의 연관관계를 엔티티 간의 연관관계로 표현할 수 있음 다만, 정확한 연관관계를 표현할 수는 없음 연관관계 매핑 종류와 방향 One To One : 일대일 (1 : 1) One To Many : 일대다 (1 : N) Many To One : 다대일 (N : 1) Many To Many : 다대다 (N : M) 어떤 엔티티를 중심으로 연관 엔티티를 보느냐에 따라 연관관계의 상태가 달라짐 JPA를 사용하는 객체지향 모델링에서는 엔티티 간 참조 방향을 설정할 수 있음 비즈니스 로직의 관점에서 봤을 경우 단방향 관계만 설정해도 해결되는 경우가 있음..

Spring Data JPA

JPQL JPA Query Language 의 줄임말로 JPA에서 사용할 수 있는 쿼리 엔티티 객체를 대상으로 수행하는 쿼리 매핑된 엔티티의 이름과 필드의 이름을 사용 쿼리 메서드의 생성 쿼리 메서드는 주제(Subject)와 서술어(Predicate)로 구분 ' find...By ', ' exists...By ' 와 같은 키워드로 쿼리의 주제를 정하며, ' By '는 서술어의 시작을 나타내는 구분자 역할을 함. 서술어 부분은 검색 및 정렬 조건을 지정하는 영역 / 엔티티의 속성으로 정의할 수 있고, AND 나 OR 를 사용해서 조건을 확장하는 것도 가능. // (리턴타입) + {주제 + 서술어(속성)} List findByEmailAndName(String email, String name); 쿼리 메서..

데이터베이스 연동 - 2

ORM ORM은 Object Relational Mapping의 줄임으로 '객체 관계 매핑'을 의미함. 객체와 RDB (Relational DataBase)의 테이블을 자동으로 매핑하는 방법 자바 클래스는 RDB 테이블과 불일치가 존재할 수 밖에 없음. ORM이 불일치와 제약사항을 해결하는 역할을 함 ORM을 사용하면 코드로 데이터를 조작할 수 있음. ORM 장점 데이터베이스 쿼리를 객체지향적으로 조작 할 수 있음 개발 비용 ↓ 가독성 ↑ 재사용 및 유지보수가 편리함 데이터베이스에 대한 종속성이 줄어듦 데이터베이스를 교체하는 상황에서도 비교적 적은 리스크를 부담 ORM 단점 온전한 서비스 구현의 한계 복잡한 쿼리를 정확한 설계 없이 ORM만으로 구성하게 되면 속도 저하 등의 성능 문제가 발생할 수 있음 ..

데이터베이스 연동 - 1

데이터베이스 연동 1. 마리마 DB 설치 > 마리아 DB 설치 홈페이지 Download MariaDB Server - MariaDB.org REST API Release Schedule Reporting Bugs … Continue reading "Download MariaDB Server" mariadb.org 만약 실습하고 있는 DB 버전과 'MariaDB Server Version' 이 맞지 않으면 Display older releases 항목을 체크해 버전을 동일하게 맞춰주는 것이 좋음 이렇게 설정을 한 후 'Download' 버튼을 눌러 파일 다운받음 계속 'Next' 를 클릭해 설치 진행! 마리아 DB 설치 시 서드 파티 도구로 'HeidiSQL' 이 설치 됨. 사용 안한다면 아래 그림과 같이..

스프링 부트 개발하기 / API 작성

스프링 부트 개발하기 프로젝트 생성 인텔리제이 - 프로젝트 생성 스프링 공식 사이트 - 프로젝트 생성 1. 인텔리제이 프로젝트 생성 Name : 프로젝트 이름 설정 Location : 프로젝트 생성할 위치 설정 Language : JVM 상에서 동작하는 언어 선택 Type : 빌드 툴 선택 (Maven 도 사용하지만 Gradle 도 사용하는 추세) Group : 프로젝트를 정의하는 고유 식별자 정보인 그룹 설정 / 정보를 거꾸로 작성 (?) Artifact : 세부 프로젝트를 식별하는 정보 기입 Package name : Group과 Artifact를 설정 시 자동 기입 JDK : JDK 버전 선택 Java : Java 버전 선택 Packaging : 애플리케이션을 쉽게 배포하고 동작하게 하는 패키징 옵..

스프링부트 란? / 기초 지식

스프링 프레임워크란? 자바 기반의 애플리케이션 프레임워크 제어 역전 (IoC) 제어의 역전은 프로그램의 제어 흐름을 직접 제어하는 것이 아니라 외부에서 관리하는 것을 의미 객체의 관리를 컨테이너에 맡기는 것이 제어 역전 제어 역전을 통해 의존성 주입 (DI), 관점 지향 프로그래밍 (AOP) 등이 가능해 짐 비즈니스 로직을 작성하는 데 더 집중할 수 있음 의존성 주입 (DI) 제어 역전의 방법 중 하나로 외부 컨테이너가 생성한 객체를 주입받아 사용하는 방식 의존성을 주입 받는 방법 생성자 필드 객체 선언 setter 메서드 스프링에서는 @Autowired 라는 어노테이션을 통해 주입할 수 있음 관점 지향 프로그래밍 (AOP) 관점을 기준으로 묶어 개발하는 방식 핵심기능과 부가기능 관점으로 나누어짐 - 핵..

[2주차] 백엔드 커리어 로드맵 - 어떤 백엔드 개발자가 되고 싶은지

- 백엔드 개발자 로드맵 - 어떤 백엔드 개발자가 되고싶은가? 백엔드 개발자 로드맵을 보니 '악!' 소리가 나온다. 컴공 지식이 없는 나로선 살 떨리는 로드맵이다. 하지만 열심히 익히고 배우고 보면 머리속에 뭐라도 남게지라는 생각이 든다. 장애가 없는 사이트를 운영할 수 있는 백엔드 개발자가 되고싶다. (꿈은 크게 가지라고...) 완벽한 프로그램은 없다지만 내가 할 수 있는 최대한의 기량과 기백으로 차근차근(?) 해 나갈 것이다. 우선 기능 많은 깔쌈한 게시판 먼저 만들수 있도록.. 공부를.....

[1주차] 프론트엔드와 백엔드 차이 - 백엔드 개발자가 되고 싶은 이유

- 프론트엔드(Front-End) 사용자가 웹 사이트 또는 웹 애플리케이션의 URL을 입력하거나 모바일 애플리케이션을 다운로드할 때, 사용자들은 아주 깔끔한 레이아웃을 가진 인터페이스를 보게 된다. 이렇게 사용자가 마주 보는 인터페이스를 ‘프론트엔드’라고 부른다. 주로 웹 및 모바일 솔루션의 사용자 인터페이스(UI)와 사용자 경험(UX)을 만드는 데 초점을 둔다. - 프론트엔드(Front-End) 주사용 언어 - [HTML] - [CSS] - [JavaScript] - 백엔드(Back-End) 웹사이트나 웹 애플리케이션 또는 모바일 솔루션의 프로세스와 관련된 서버 측(Server-side)과 데이터베이스를 관리해 주는 기술이다. 백엔드는 눈에 보이지 않는 서버에서 작용하는 기술을 다룬다. 데이터를 저장하..

최대공약수 - 유클리드 알고리즘 (유클리드 호제법)

수학은 나에게 참 어려운 과목이다. 그래도 최대공약수, 최소공배수 이쯤이야~~ 풀수 있다. 하지만.. 이걸 코딩으로?..... 구현을 하자니... 내가 풀어온 공식들이 머릿속에서 엉퀴기 시작해 손이 5분간 멈춰있던 것 같다. 검색하는 도중 유클리드 알고리즘 (유클리드 호제법)을 알게되었다. == 유클리드 알고리즘(유클리드 호제법) == 자연수의 최대공약수를 구하는 알고리즘의 하나이다. a, b에 대해서 a를 b로 나눈 나머지를 r이라 하면(단, a > b / r은 0 ≤ r< b) a와 b의 최대공약수는 b와 r의 최대공약수와 같다. b를 r로 나눈 나머지 r`를 구하고 다시 r을 r`로 나눈 나머지를 구하는 과정을 반복하여 나머지가 0이 되었을 때 나누는 수가 a와 b의 최대공약수이다. // 최대공약수..

코테/알고리즘 2023.01.01

제로베이스 백엔드 스쿨

제로베이스 백엔드 스쿨 수강을 결심한 이유 다시 취준생활을 시작으로 국비, 부트캠프, 이직 등 고민이 많았다. 그래도 웹 개발, 백엔드를 하고싶은 마음이 커 찾아본 결과 제로베이스 커리큘럼이 나아보였다. 웹 개발 강의를 들었을 때 코드리뷰가 좋았던 기억이 있어 선택하게 되었다. 6개월 간의 목표 진도, 코딩테스트, 과제, 프로젝트... 많은걸 소화해낼 수 있을지 의문이 든다. 하지만 해야한다. 하고싶으니까 열심히 하다보면 백엔드 개발자로 취업을 하게 되지않을까 싶다. 다시 목표를 위해 힘내자!!~