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 \ ..
241230 에이콘 아카데미 수업에 기반하여 작성되었음을 알립니다. 도커 Docker (도커)는 컨테이너 기반의 오픈소스 가상화 플랫폼을 말한다. 가상화를 통해 배포 및 개발 환경을 구축해두는 것이다. 각 개인이 개발을 할 때 DB, 에디터, 서버 등등을 한명이 이미지화 시켜놓으면 다른 사람이 그 이미지를 가져다 사용한다면 개발 환경을 동일화시킬 수 있다. 개발 환경을 이미지화 시키는 것! 버전이 중요하다.즉, Docker는 개발자가 컨테이너를 빌드, 배포, 실행, 업데이트, 관리할 수 있는 오픈 소스 플랫폼이다. 전가상화 반가상화 반가..
241227 에이콘 아카데미 수업에 기반하여 작성되었음을 알립니다.Role이전 시간과 이어서 진행됩니다.SecurityConfig@Configuration@EnableWebSecurity // JWT 적용 시 굳이 명시하지 않아도 괜찮다.public class SecurityConfig { // 스프링 시큐리티는 시큐리티 관련해 다양한 기능을 필터 체인(클라이언트 요청 -> 필터 -> 필터 -> .. -> 서블릿) @Bean SecurityFilterChain securityFilterChain(HttpSecurity httpSecurity) throws Exception { // white list 목록 permitAll 대상 String[] whiteList = { "/", "/notice"..
241226 에이콘 아카데미 수업에 기반하여 작성되었음을 알립니다. 시큐리티 아키텍쳐를 꼭 그릴 수 있어야하고 이해 해야한다. JWT이전 글과 이어서 진행됩니다.JwtAuthenticationFilter// JwtAuthenticationFilter: JWT 인증을 처리하는 필터, 요청이 들어올 때 마다 실행// 요청의 헤더 또는 쿠키에서 JWT 추출@Component//@RequiredArgsConstructor//필요한 생성자를 자동 생성해주는 롬복 어노테이션, 사용 시 아래처럼 기본 생성자를 굳이 만들지 않아도 괜찮다.public class JwtAuthenticationFilter extends OncePerRequestFilter { // OncePerRequestFilter: 추상 클래스, ..
241224 에이콘 아카데미 수업에 기반하여 작성되었음을 알립니다.권한 부여(어제 내용과 이어서 진행됩니다.)login.html 로그인 페이지 사용자명 : 비밀번호 : 로그인 성공적으로 로그아웃 되었다! 세션 시간 만료로 로그아웃 되었다! Testcontroller@Controllerpublic class TestController { @GetMapping("/login") public String login() { return "login"; }}SecurityConfigauthorize / formlogin / logout@Configuration@EnableWebSecuritypublic class SecurityConfig { // Spring Security의 Role(역..
241223 에이콘 아카데미 수업에 기반하여 작성되었음을 알립니다. 인증, 인가이전 시간에 세션과 JWT만을 이용한 인증, 인가 절차를 배워보았다.이번 시간에는 본격적으로 스프링 시큐리티와 JWT를 배워보자.시큐리티는 기본적으로 세션을 이용하지만 세션 말고 JWT와 연계하여 사용하게 된다면확장성과 SPA를 구현하기에 더욱 더 좋다.🙏 spring security는 session, jwtSpring Boot JWT 실습이전 시간에 했던 의존성 동일하게 사용 / 출력 부분도 복붙해주자build.gradle0.11.5 버전 사용, build.gradle에 의존성 부여해주고 리프레쉬!0.11 버전implementation 'io.jsonwebtoken:jjwt-api:0.11.2'runtimeOnly 'io...