250107 에이콘 아카데미 수업에 기반하여 작성되었음을 알립니다.MongoDB - Spring Boot (빅데이터)build.gradle... 생략dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-mongodb' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' developmentOnly 'org.springframework.boot:spring..
250106 에이콘 아카데미 수업에 기반하여 작성되었음을 알립니다.MongoDB - Spring Boot (CRUD)프로젝트 생성Customer@Document(collection = "customer") // JPA에서 @Entity와 같은 역할, collection은 table@Getter@Setterpublic class Customer { @Id private String id; private String name; private int age; private String gender; @Override public String toString() { return "Customer{" + "id=" + id + ", name=" + name + ", age=" + age + ", gender=..
250103 에이콘 아카데미 수업에 기반하여 작성되었음을 알립니다.NoSQL은 현재 SNS에 있는 구조가 제각기인 데이터들을 크롤링할 때 유리하다.MongoDB - JAVA (CRUD)이전 글과 이어서 진행됩니다. MongoDB shell MongoTest2 (읽기)public class MongoTest2 { // Customer 데이터를 저장하는 클래스 static class Customer { private ObjectId id; private String name; private int age; private String gender; public Customer(ObjectId id, String name, int age, String gender) { this.id = id..
250102 에이콘 아카데미 수업에 기반하여 작성되었음을 알립니다. NoSQLNo SQL 또는 Not Only SQL 이다. 기존의 RDBMS의 한계를 극복하기 위해 만들어진 새로운 형태의 데이터 저장소다. 관계형 DB가 아니므로, RDBMS 처럼 고정된 스키마 및 JOIN 이 존재하지 않는다.RDBMS의 한계 많은 데이터량과 데이터 처리량이 계속적으로 증가한다면 RDBMS는 아래와 같은 문제점을 만난다.스키마 문제 : 빅데이터를 RDB의 스키마에 맞춰 변경해서 넣으려면 매우 긴 시간의 down time이 발생스케일업의 한계 : RDBMS는 애초부터 스케일 아웃을 염두에 두고 설계되지 않았다. 관계 모델과 트랜잭션의 연산, 일관성, 속성을 유지하면서 분산환경(스케일아웃)에서 RDBMS를 조작하는 것은 어..
241231 에이콘 아카데미 수업에 기반하여 작성되었음을 알립니다. 🙏 Dockerfile로 도커 컨테이너 build도커 데스크탑 실습이미지 업로드하기 (파워쉘 사용)실행, 중지, 삭제 모두 가능 nodejs 환경에서 웹서버 실행하기my2 디렉토리를 만들고 이 안에서 작업도커파일 만들기 컨테이너 이미지로 빌드우분투 환경에서 java 설치하기 my3 디렉토리를 만들고 이 안에서 작업Dockerfile 작성 -------------- $ nano Dockerfile # 1. 최신 우분투 이미지 사용 FROM ubuntu:latest # 2. 기본 패키지 업데이트 및 필요한 의존성 설치 RUN apt-get update && apt-get install -y \ wget \ curl \ ..
작업일지에 들어가며 이전 기능 구현에 이어 이번에는 사용자 정보를 입력받아 검증 후 비밀번호를 재설정하여 사용자 메일에 전송해주는 기능을 구현해보겠다. 🙏 Spring Boot + React 프로젝트 / 이메일 전송 기능 (비밀번호 찾기, 임시비밀번호 부여) 내가 원하는 기능을 아주 상세하게 작성해주셔서 해당 포스팅을 상당히 많은 참고를 하며 해봐야겠다.구글 이메일 세팅 앱 비밀번호를 꼭 기억해두자!백엔드 코드1. application.properties# GMailspring.mail.host=smtp.gmail.comspring.mail.port=587spring.mail.properties.mail.deug=truespring.mail.properties.mail.smtp.auth=truespri..
작업일지에 들어가며이번에는 사용자 아이디 찾기 기능을 구현해보겠다. 아이디(이메일)찾기 버튼을 누르면 모달로 사용자 정보 중 휴대전화번호가 중복이 되지 않기 때문에 사용자 이름과 휴대전화 번호를 입력받고 서버에서 검증하여 검증이 완료되면 해당 유저의 이메일을 모달에 바로 띄우는 방향으로 진행해보겠다.백엔드 코드1. Respositorypublic interface MembersRepository extends JpaRepository { Members findByEmail(String email); // 이메일 중복 검사 boolean existsByEmail(String email); // 휴대전화 중복 검사 boolean existsByPhone(String phone); // 이메일 찾기 Opti..
241230 에이콘 아카데미 수업에 기반하여 작성되었음을 알립니다. 도커 Docker (도커)는 컨테이너 기반의 오픈소스 가상화 플랫폼을 말한다. 가상화를 통해 배포 및 개발 환경을 구축해두는 것이다. 각 개인이 개발을 할 때 DB, 에디터, 서버 등등을 한명이 이미지화 시켜놓으면 다른 사람이 그 이미지를 가져다 사용한다면 개발 환경을 동일화시킬 수 있다. 개발 환경을 이미지화 시키는 것! 버전이 중요하다.즉, Docker는 개발자가 컨테이너를 빌드, 배포, 실행, 업데이트, 관리할 수 있는 오픈 소스 플랫폼이다. 전가상화 반가상화 반가..
작업에 들어가며로그인 아이디 기억 기능 개발 구현을 하기 위해 어떻게 할까 고민 중 중간 프로젝트와 동일하게 쿠키에 사용자 아이디를 넣어 화면에 출력하는 방법이 제일 쉽고 간단하게 구현할 수 있을 것 같아 이번 프로젝트에서도 같은 방법으로 기능을 구현하게 되었다. 아래에서 좀 더 자세하게 기능 개발 과정을 설명해보도록 하겠다.로그인 이메일 기억하기 개발 과정1. 쿠키 모듈 설치먼저 리액트에서 쿠키를 사용하기 위한 모듈을 설치해준다.npm install js-cookie 2. 체크박스 상태 관리useState를 사용해서 아이디 기억하기 체크박스의 상태를 관리한다.초기값은 false로 체크박스가 해제된 상태로 화면에 보여지게 한다.// 아이디 기억하기 체크박스 상태 관리const [checked, setCh..
작업일지에 들어가며이전 프로젝트에서는 다른 참고 자료들의 코드들을 보고 따라하는 수준으로 스프링 시큐리티와 JWT를 적용했다면 이번에는 시큐리티와 JWT에 대해 알고있던 얕은 지식과 학원 수업을 더해 진행해보겠다. 학원에서는 리프레쉬 토큰까지 배우지는 않았지만 이번 작업에서는 리프레쉬 토큰까지 구현해보도록 하겠다. 무난히 개발을 완료했으면 좋겠지만 오히려 많은 에러를 만나보는 것이 더 좋을 것 같다는 생각이 든다.JWT 개발 과정1. bulid.gradle JWT 의존성 추가dependencies { ... 생략 // JWT implementation group: 'io.jsonwebtoken', name: 'jjwt-api', version: '0.11.5' runtimeOnly group: ..