일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Spring Security
- 웹개발
- JavaScript
- 시큐리티
- Kafka
- EC2
- Spring
- 생성자 주입
- emqx
- 개인프로젝트
- visualvm
- 스웨거
- 스프링의 정석
- AWS
- java
- DB
- 프로그래머스
- 항해99
- WEB SOCKET
- 패스트캠퍼스
- CentOS
- 스파르타코딩클럽
- 카프카
- 데이터베이스
- MYSQL
- 남궁성과 끝까지 간다
- docker
- @jsonproperty
- 쇼트유알엘
- JWT
- Today
- Total
목록회고록/항해99 (19)
Nellie's Blog
[목차] 1. Spring Security 란? 2. Spring Security 주요 컴포넌트 확인하기 3. Spring Security의 Default Form Login 방식 사용해보기 4. UserDetails, UserDetailsService Custom 해보기 5. 비밀번호 암호화 이해하고 적용하기 6. CustomSecurityFilter 적용해보기 7. @AuthenticationPrincipal 8. @Secured 9. 401, 403 Error ExceptionHandling 해보기 10. Security에서 JWT를 사용한 인증/인가 흐름 짚고 넘어가기 목차 중 1,2,10번만 정리했다. 1. Spring Security 란? 'Spring Security' 프레임워크는 스프링 서..
학습 과제의 목표 Git 원격 repo를 사용할 수 있고, branch 전략을 세워 협업 환경을 구성하여 개발할 수 있어요. 복잡한 비즈니스 요구사항을 보고 연관관계를 정하고 구현해 낼 수 있어요. Spring Security를 사용하여 인증/인가를 구현해 낼 수 있어요. 추가된 요구사항 숙련주차 개인과제 LV2 프로젝트에 Spring Security 적용하기 게시글 좋아요 API 사용자는 선택한 게시글에 ‘좋아요’를 할 수 있습니다. 사용자가 이미 ‘좋아요’한 게시글에 다시 ‘좋아요’ 요청을 하면 ‘좋아요’를 했던 기록이 취소됩니다. 요청이 성공하면 Client 로 성공했다는 메시지, 상태코드 반환하기 댓글 좋아요 API 사용자는 선택한 댓글에 ‘좋아요’를 할 수 있습니다. 사용자가 이미 ‘좋아요’한 ..
UserController & SignupRequestDto / LoginRequestDto UserService UserRepository Entity - User / UserRoleEnum JwtUtil UserController package com.sparta.myselectshop.controller; import com.sparta.myselectshop.dto.LoginRequestDto; import com.sparta.myselectshop.dto.SignupRequestDto; import com.sparta.myselectshop.service.UserService; import jakarta.servlet.http.HttpServletResponse; import lombok.Req..
[목차] Ⅰ.영속성 컨텍스트 00. 들어가기 전에 01. 영속성 컨텍스트란? 02. 영속성 컨텍스트는 어떻게, 왜 이렇게 설계되어있을까요? Ⅱ. 엔티티 매핑 심화 01. 기본 엔티티 매핑 관련 02. 연관관계 관련 심화 03. 양방향 연관관계의 주의점 04. 프록시 Ⅰ.영속성 컨텍스트 00. 들어가기 전에 우리가 Spring Data JPA로 해오던 방식 // Entity를 생성! Member minsook = new Member(); member.setId("abcd1234"); member.setUsername("민숙"); // 아래의 내용은 똑같은 과정! memberRepository.save(minsook); memberRepository.find(); 우리가 Spring Data JPA를 사용하..
학습 과제의 목표 회원가입, 로그인을 구현할 수 있어요. 인증/인가를 이해하고 JWT를 활용하여 게시글 및 댓글을 처리할 수 있어요. JPA 연관관계를 이해하고 회원, 게시글 및 댓글을 구현할 수 있어요. 서비스 완성 요구사항 회원 가입 API username, password를 Client에서 전달받기 username은 최소 4자 이상, 10자 이하이며 알파벳 소문자(a~z), 숫자(0~9)로 구성되어야 한다. password는 최소 8자 이상, 15자 이하이며 알파벳 대소문자(a~z, A~Z), 숫자(0~9), 특수문자로 구성되어야 한다. DB에 중복된 username이 없다면 회원을 저장하고 Client 로 성공했다는 메시지, 상태코드 반환하기 회원 권한 부여하기 (ADMIN, USER) - ADM..
학습 과제의 목표 Java를 활용하여 필요한 클래스를 구상할 수 있어요. Lombok과 JPA를 이용하여 원하는 데이터베이스를 만들고 활용할 수 있어요. Spring Boot를 기반으로 CRUD(Create, Read, Update, Delete) 기능이 포함된 REST API를 만들 수 있어요. 과제 주의사항 Entity를 그대로 반환하지 말고, DTO에 담아서 반환해주세요! 프론트엔드와 백엔드가 느슨하게 결합하는 환경이 ”최근에는” 더 일반적이라고 말씀드렸죠? 앞으로 남은 강의 예제와 실습에서는 html/css/js 즉 뷰도 같이 반환 하겠지만, 과제에는 여러분들이 서버 로직에 더 집중하실 수 있도록 JSON을 반환하는 API형태로 진행하려고 합니다. 눈으로 직접 확인 할 수 있었던 view와는 다르..
1-3. JPA기초 Member.java / Food.java / Orders.java Restaurant.java 1. foods 리스트 생성 및 saveAll로 저장 2. members 리스트 생성 및 saveAll로 저장 3. memberRepository에서 findMembers변수로 findAll로 출력(저장된 것 확인) 4. foodRepository에서 findFoods변수로 findAll로 출력(저장된 것 확인) 5. orderList 리스트 생성 및 saveAll로 저장 6. ordersRepository에서 orderList변수로 findAll로 출력(저장된 것 확인) - for문으로 사람&음식 하나하나 출력 7. memberRepository에서 samsik변수로 findById로 삼..
3번. 소수의 개수와 덧셈 (상) 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 소수의 최대값과 소수가 아닌 수의 최소값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를들어 s가 "2 3 4 5"라면 "4 5"를 리턴하고, "15 3 10 9 7 8"라면 "8 7"을 리턴하면 됩니다. 제한사항 s에는 둘 이상의 정수가 공백으로 구분되어 있습니다. 문자열에는 소수가 한개 이상 섞여 있습니다. 문자열에는 소수가 아닌 수가 한개 이상 섞여 있습니다. 음수는 없습니다. 답안포맷 public class Main { public String solution(String s) { String answer = ""; retu..
1번. 신대륙 발견 기원이는 오늘 항해99를 시작했다. 성격이 급한 기원이는 항해 1일 차부터 언제 수료를 하게될 지 궁금하다. 항해 1일 차 날짜를 입력하면 98일 이후 항해를 수료하게 되는 날짜를 계산해주는 알고리즘을 만들어보자. 제한 조건 1 ≤ month ≤ 12 1 ≤ day ≤ 31 (2월은 28일로 고정합니다, 즉 윤일은 고려하지 않습니다.) 아래 답안 포맷을 참고하여 답안을 작성해주시기 바랍니다 public class Main { public String solution(int month, int day) { String answer = ""; return answer; } public static void main(String[] args) { Main method = new Main()..
1. Github에 있는 저장소(Repository)를 Clone하기 깃헙 코드 복사하여 2번에 붙여넣기 클론 후 전체선택 하고 Pull ! 2. 프로젝트를 Github로 Commit / Push하기 커밋 - 선택해서 파일 스테이지로 올려주고 - 코멘트작성 - 커밋 - Pull! 리모트 브랜치를 열어보면 HEAD와 main이 있다. HEAD는 현재 작업중인 브랜치를 의미한다. 지금은 HEAD와 main의 차이가 없지만, 이후에 프로젝트를 진행하다 보면 branch와 merge 과정을 다수 거친다. 임의의 branch에서 checkout을 받으면, 해당 branch가 HEAD가 된다. https://velog.io/@jkh9615/%EC%86%8C%EC%8A%A4%ED%8A%B8%EB%A6%ACsource..
1. 회원가입 기능 1) 해시함수란? 알고리즘의 한 종류로서 임의의 데이터를 입력 받아 항상 고정된 길이의 임의의 값으로 변환해주는 함수. 회원가입 창에서 비밀번호를 입력하면 그대로 저장할 수 없다. 개발자도 모르고 아무도 알 수 없게 해야하기 때문에, 해시함수를 사용해서 암호화 해야 한다. pw_hash = hashlib.sha256(pw_receive.encode('utf-8')).hexdigest() 디비에 이렇게 저장된다. 암호화를 한 값은 해커가 가져가도, 이 암호가 어떤 비밀번호인지 해석할 수 없다. 우리가 회원가입에 사용할 암호화기술은 해시함수 sha256 이다. 비밀번호를 sha256 방법(=단방향 암호화. 인코딩만 가능하고 디코딩 불가. 풀어볼 수 없음)으로 암호화해서 저장한다. SHA2..
팀명 : 10조 일자 : 11/14 - 11/17 1. 프로젝트 명 어떰b (A Thumb) 2. 소개 내가 좋아하는 브랜드의 상품 후기가 한번에! 관심 브랜드 별로 상품 후기를 게시하고 댓글로 소통함으로써 내게 알맞는 상품을 찾아 구매하도록 정보를 공유하는 패션아이템 플랫폼입니다. 3. 와이어 프레임 1) 로그인 페이지 2) 회원가입 페이지 3) 글 목록 페이지(메인 페이지) - 목록이 많아야 하기 때문에 나이키, 아디다스 홈페이지에서 크롤링으로 당겨오기 4) 글 작성 페이지 - 구매링크 붙일 때는 쿠팡 링크 (법적으로 안전) 붙이기 - 추후 문제 없도록 robot.txt 확인해서 사용할 것 - 사진 첨부는 갤러리 사진이 아닌 url 붙일 것(손이 많이 가기 때문에 주특기 프로젝트 때 구현 하기) 4...
아래 부분을 추가했다. app.py에서 파이썬 문법으로 평당 가격을 구하는 로직을 만들고, db에 저장한후, index.html에서 price를 가져와서 temp_html에도 추가해준후, #order-box에 append해줬다. 끝 ^_^
1. EC2 서버 구매하기 더보기 웹 서비스를 런칭하기 위해 클라이언트의 요청에 항상 응답해줄 수 있는 서버에 프로젝트를 실행시켜야 한다. 언제나 요청에 응답하려면, 1) 컴퓨터가 항상 켜져있고 프로그램이 실행되어 있어야하고, 2) 모두가 접근할 수 있는 공개 주소인 공개 IP 주소(Public IP Address)로 나의 웹 서비스에 접근할 수 있도록 해야한다. 서버는 그냥 컴퓨터이기 때문에, 외부 접속이 가능하게 설정한 다음에 내 컴퓨터를 서버로 사용할 수 있다. AWS라는 클라우드 서비스에서 편하게 서버를 관리하기 위해서 항상 켜 놓을 수 있는 컴퓨터인 EC2 사용권을 구입해 서버로 사용해 보자. 클릭 만으로 내가 원하는 서버(컴퓨터)의 설정을 정하고, 거기에 컴퓨터를 실행시키기 위한 운영체제(OS..
👉 5주차 수업목표 1. '버킷리스트'를 완성한다. 2. EC2에 내 프로젝트를 올린다. (배포) 👉 5주차 설치 1. Filezilla 설치하기 (내 작업물을 클라우드에 올리기위해 파일을 보낼수 있는 프로그램) 2. 가비아 가입하기 & 도메인 구입하기 👉 버킷리스트 사이트 만들기 - 버킷리스트 목록을 기록하고, 완료 버튼을 누르면 취소선이 그어지도록 만들어 보자! - 힌트 : 취소선이 그어지도록 만든다는 것은? 넘버링이 되어야 한다는 뜻! 어떤 목록을 취소선 그을지 알아야 하니까! 패키지 설치하기 3개 : flask, pymongo, dnspython (기본으로 3개 설치하고, 크롤링 할거면 request, bs4추가) 1. 서버 만들기 (순서대로 작성) from flask import Flask, r..
👉 4주차 수업목표 1. Flask 프레임워크를 활용해서 API를 만들 수 있다. 2. '화성에 땅사기' API를 만들고 클라이언트에 연결한다. 3. '스파르타피디아' API를 만들고 클라이언트와 연결한다. 1,2주차에는 html,css,js를 배웠고, 3주차에는 서버를 다룰수있는 python과 저장소인 db를 배웠다. 4주차에는 드디어 서버를 배워본다! 👉 Flask 시작하기 - 서버만들기 참고) 파이썬으로 웹개발을 할 때 가장 유명한 것은 Django(장고)인데, 장고는 무겁고 기능이 많아서 복잡하여 초보가 쓰기 쉬운 라이트한 flask프레임워크를 사용한다. (자바의 Spring) - HTML과 mongoDB까지 연동해서 서버를 만들어보자! 1. 파이참에서 Flask 패키지 설치 (Flask 프레임워..
👉 3주차 수업목표 1. 파이썬 기초 문법을 안다. 2. 원하는 페이지를 크롤링 할 수 있다. 3. pymongo를 통해 mongoDB를 제어할 수 있다. 👉 3주차 설치 1. Python 설치 파이썬을 설치한다는것은? → 일종의 번역팩을 설치하는것. 컴퓨터는 101010001 과 같은 언어만 알아듣는데, 파이썬 문법으로 된 것을 101010001로 변환해줄 수 있도록, 번역 패키지를 설치하는 것!!! 2. (윈도우만!) Git bash 설치 👉 2주차 연습 겸 복습 - 스파르타피디아에 OpenAPI 붙여보기 - 아티클들의 정보를 불러오는 OpenAPI를 써서 저장된 포스팅 불러오기(GET)를 만들어보자! 아래 처럼! ..... // ⭐id="cards-box"를 이용해서 이쪽에 append해주자! 영화..
2주차에서는, HTML파일을 받았다고 가정하고, Javascript로 다시 서버에 데이터를 요청하고 받는 방법을 배운다. jQuery를 이용해 Javascript로 HTML을 쉽게 제어하고, Ajax를 이용해 다시 서버에 데이터를 요청하고 받아보기! 👉 jQuery 란? - HTML의 요소들을 조작하는, 편리한 Javascript를 미리 작성해둔 라이브러리! (쓰기 전에 "임포트"필수! 아래와 같이 head안에 한줄 넣어주면 끝!) Javascript로도 모든 기능(예 - 버튼 글씨 바꾸기 등)을 구현할 수는 있지만, 1) 코드가 복잡하고, 2) 브라우저 간 호환성 문제도 고려해야해서, jQuery라는 라이브러리가 등장하게 됨. - jQuery와 Javascript 코드 비교 document.getEle..
👉 웹의 동작 개념 (로컬 개발 환경) 👉 웹의 동작 개념 (배포) 👉 HTML / CSS 기초 - 로그인 페이지 만들기 로그인 페이지 아이디, 비밀번호를 입력해주세요 ID: PW: 로그인하기 background-image: url(''); background-position: center; background-size: cover; --> 배경넣을때 이 3줄은 항상 같이 다닌다. 👉 구글 웹폰트 입히기 https://fonts.google.com/?subset=korean Google Fonts Making the web more beautiful, fast, and open through great typography fonts.google.com 구글 웹폰트 사이트 접속 -> 마음에 드는 폰트 클릭..