이번 프로젝트에서는 aws rds 를 구현해보고 싶어서 내가 맡게 되었다. 채용 공고들을 보다가 redis 구현 경험 이 조건인게 많아서 이기도 했고redis 를 다른 프로젝트를 보면 사용한 게 많았는데 사용하는 이유가 궁금해서이번 기회에 프로젝트에 적용해보고자 먼저 공부를 위해 강의를 구매했다. Redis 란Redis는 데이터 처리 속도가 엄청 빠른 NoSQL 형태 데이터베이스이다.NoSQL 데이터베이스는 Key-Value 형태로 저장하는 데이터베이스이다.데이터 처리 속도가 엄청 빠른 이유는 인메모리(in-memory) 에 모든 데이터를 저장하기 때문이다. 즉, 메모리 안에 데이터를 저장하기 때문에 디스크에 데이터를 저장하는 RDBMS의 데이터베이스인 MYSQL 과 같은 것들보다 처리 속도가 빠르다. ..
spring
[산학협력 프로젝트] 과목으로 학교 수업에서 프로젝트를 하게 되었다.이왕이면 프로젝트의 기록을 적어서나중에 프로젝트를 할때 이 기록을 통해 흐름을 참고하고, 스스로 피드백을 통해 부족한 점을 가시화하여성장하고자 앞으로 주차별로 진행상황을 적어보려 한다.팀원 모으기 솔직히, 요거부터 힘들었다.최종적으로 이 과목을 통해 하고 싶었던 것은 배포까지 하여 실 사용자가 있는 결과물 내기였는데뜻이 맞는 동기 한명은 백엔드, 나도 백엔드 포지션으로 프론트가 필요했다. 이 과목을 수강하는 수강생 중 아는 프론트 분이 없었고교수님께서 자유롭게 이캠퍼스 게시판에서 어필하면서 팀빌딩을 하라고 하셔서최대한 빨리 내 이력서를 만들고 이를 토대로 동기와 원하는 포지션 사람을 의논한 후, 팀빌딩 게시판에 글을 썼다. 내가 선택한..
문제JobFieldMap 개인 프로젝트 진행 중 크롤링 시 시간이 오래 걸리는 문제가 발생하였다. 만약 실제 서비스화된다면 페이지의 내용을 크롤링 하는데에 1분이 넘는 시간이 걸려서 불편한 상황이 이루어질 수 있다.기존 코드는 아래와 같다.(변경 이전 크롤링 코드)public List crollingAndSave() { String companyname; String recruitPosition; String reward; String source; String workDetail = ""; Path path = Paths.get(System.getProperty("user.dir"), "src/main/resources/chromedriver.exe"); Syste..
section531강. 대출 기능 개발하기32강. 책 반납 기능 개발하기33강. 조금 더 객체지향적으로 개발할 수 없을까?34강. JPA 연관관계에 대한 추가적인 기능들35강. 책 대출/반납 기능 리팩토링과 지연 로딩1. 대출기능 개발 - 새로운 테이블 생성현재 user, book 2개의 테이블이 존재한다. 하지만 이 2개의 테이블 만으로는 대출 기능을 만들 수 없다. 새로운 테이블 user_loan_history 이 필요하다.create table user_loan_history ( id bigint auto_increment, user_id bigint,book_name varchar(255), is_return tinyint(1), primary key (id))user_id : 어떤 유저가 빌렸는..
진도표 7일차와 연결됩니다우리는 JPA라는 개념을 배우고 유저 테이블에 JPA를 적용해 보았습니다. 몇 가지 문제를 통해 JPA를 연습해 봅시다! 🔥 문제1JPA(Java Persistence API) 는 자바 객체를 관계형 데이터 베이스에 영속적으로 저장하고 조회할 수 있는 ORM 기술에 대한 표준 명세를 의미한다.JPA 를 통해 SQL 쿼리를 작성하지 않고도 객체를 통해 데이터베이스를 조작할 수 있어 보수성이 향상된다.Entity 클래스를 작성한 후 Repository 인터페이스를 생성해야하는데, JpaRepository를 상속받도록 하면, 기본적인 쿼리 추가, 조회, 수정, 삭제, findAll(), findById() 등의 메서드를 사용할 수 있다.1) Entity 클래스 정의@Entitypub..
진도표 6일차와 연결됩니다우리는 스프링 컨테이너의 개념을 배우고, 기존에 작성했던 Controller 코드를 3단 분리해보았습니다. 앞으로 API를 개발할 때는 이 계층에 맞게 각 코드가 작성되어야 합니다! 🙂과제 #4 에서 만들었던 API를 분리해보며, Controller - Service - Repository 계층에 익숙해져 봅시다! 👍 controller, service, repository로 분리해보자.파일의 폴더 구조는 아래와 같다. controller, domain, dto, repository, service 폴더로 이루어져 있으며, 각각에 해당하는 파일들이 위치한다.FruitController.javapackage com.group.libraryapp.controller.fruit;i..
진도표 4일차와 연결됩니다우리는 GET API와 POST API를 만드는 방법을 배웠습니다. 👍 추가적인 API 들을 만들어 보며 API 개발에 익숙해져 봅시다!문제1 : "과일 정보" 저장하는 api 생성FruitController, Fruit, FruitCreateRequest 파일을 아래와 같은 폴더 구조로 만들었다.그런데 (문제2)에서 id 값이 필요한 것을 보고, primary key로 id 를 추가 설정하였다.Fruit.javapackage com.group.libraryapp.domain;import java.time.LocalDate;public class Fruit { private String name; private LocalDate warehousingDate; p..
진도표 3일차와 연결됩니다우리는 JdbcTemplate을 사용하는 과정에서 익명 클래스와 람다식이라는 자바 문법을 사용했습니다. 익명 클래스는 자바의 초창기부터 있던 기능이고, 람다식은 자바 8에서 등장한 기능입니다. 다음 키워드를 사용해 몇 가지 블로그 글을 찾아보세요! 아래 질문을 생각하며 공부해보면 좋습니다! 😊 [키워드]익명 클래스 / 람다 / 함수형 프로그래밍 / @FunctionalInterface / 스트림 API / 메소드 레퍼런스 [질문]자바의 람다식은 왜 등장했을까?람다식과 익명 클래스는 어떤 관계가 있을까? - 람다식의 문법은 어떻게 될까? 자바의 람다식 등장 배경람다식이 등장하게 된 이유는 불필요한 코드를 줄이고, 가독성을 높이기 위함이다.현재 실습하고 있는 '도서관리 애플리케이션..