일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Antialiasing
- self-signed ssl
- ClickOnce
- 기념일관리
- net
- VS2008
- Font
- 한 번만 실행
- phpmailer
- crashlog
- 블루투스 헤드셋
- C#
- JavaScript
- GDI
- C/C++
- protobuf-c
- docker
- PDA
- php
- 크래시로그
- M8200
- 데이터 전달
- API
- 자바스크립트
- MFC
- EUC-KR
- 설치제거
- 와이브로
- .net
- plcrashreporter
- Today
- Total
목록2024/11 (42)
~☆~ 우하하!!~ 개발블로그
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/YX9hr/btsKNxdFzXP/FpagnIflihYwVCosN7ejn0/img.png)
https://iwoohaha.tistory.com/320 에서 Google 계정을 이용하여 로그인하는 과정을 살펴보았는데, 회원ID를 email 주소로 관리하고 있기 때문에 Google 로부터 전달받은 이메일 주소와 동일한 이메일 주소로 회원이 등록되어 있는 경우에 간단하게 로그인이 가능하게 되었다.이번에는 회원가입되지 않은 이메일 주소의 구글 계정 정보가 들어온 경우에 해당 이메일 주소로 회원가입을 진행한 후에 로그인시키도록 기능을 변경해보려고 한다.수정해야 할 주요 부분은 CustomOAuth2UserService 의 loadUser 함수 부분이다. @Override public OAuth2User loadUser(OAuth2UserRequest userRequest) throws OAu..
나홀로 웹 FrontEnd 프로젝트를 하다보면 디자인이 막막할 때가 한 두번이 아니다.이럴 때 잘 만들어진 웹사이트를 찾아다니다가 멋진 또는 잘 어울리는 스타일을 복사해서 붙여넣기하는 경우가 있는데, CSS 를 이용하여 디자인되는 사이트가 대부분이다보니 CSS 복사가 참 힘들다.CSS 복사해서 가져오기 유틸리티를 찾다가 CSS Scan 이라는 넘을 발견했다.https://chromewebstore.google.com/detail/css-scan/gieabiemggnpnminflinemaickipbebg?hl=ko-KR CSS Scan - Chrome 웹 스토어계산된 CSS를 신속하게 검사, 복사chromewebstore.google.comhttps://getcssscan.com/ 주소에서 판매를 하고 있..
사용자 생성과 데이터베이스 생성root 권한 사용자에게 소유권이 부여되면 된다.#!/bin/bash# 파라미터 확인 및 변수 할당if [ "$#" -ne 3 ]; then echo "Usage: $0 " exit 1fiDB_NAME="$1"DB_USER="$2"DB_PASSWORD="$3"# PostgreSQL 서비스 상태 확인echo "PostgreSQL 서비스 상태를 확인합니다..."sudo systemctl status postgresql | grep "Active: active (running)"# PostgreSQL 버전 확인echo "PostgreSQL 버전 확인:"psql --version# PostgreSQL 슈퍼유저 역할 생성sudo -u postgres psql postg..
사용자 생성과 DB 생성 스크립트반드시 homebrew 가 설치되어 있는 상태여야 하고,homebrew 를 이용하여 postgresql 을 설치한 상태여야 한다.#!/bin/bash# 파라미터 확인 및 변수 할당if [ "$#" -ne 3 ]; then echo "Usage: $0 " exit 1fiDB_NAME="$1"DB_USER="$2"DB_PASSWORD="$3"# PostgreSQL 서비스 상태 확인echo "PostgreSQL 서비스 상태를 확인합니다..."brew services list | grep "postgresql" | grep "started"# PostgreSQL 버전 확인echo "PostgreSQL 버전 확인:"psql --version# PostgreSQL 슈퍼..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/Kr2zX/btsKIBoEcVD/j0D1Bp800Um1hpLYxcDMCk/img.png)
현재 diary 웹 프로그램은 세션 방식의 로그인을 사용하고 있어. 이번 포스트에서는 토큰 방식의 로그인으로 변경해보려고 해.세션 방식의 로그인은 세션이 유지되는 동안 로그인이 유지되는 특징이 있어. 세션이 끊어지면 로그인을 다시 해주어야 하지. 그래서 remember-me 라는 쿠키를 사용해서 세션이 끊어지더라도 다시 로그인없이 웹 프로그램을 사용할 수 있게 하는 방법을 사용했었지. ☞ SpringBoot: study.diary – Spring Security remember-me, logout 처리 재정리토큰 방식의 로그인은 로그인에 성공하면 토큰을 발급받는데, 이 토큰을 이용해서 사용자 인증을 확인하기 때문에 세션과는 무관해. 웹 프로그램에서는 이 토큰을 쿠키로 저장해두었다가 사용하는 방법으로 재사..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bg60Ck/btsKIxNlaEx/75aRGh5BKqaymszgeFq3Y0/img.png)
diary 프로그램에서 사용중인 로그인 폼은 Boot Strap 예시에서 가져온거야.가운데에 Remember me 라는 체크박스가 있는데, 이번 포스트에서는 이 체크박스에 기능을 연결해보려고 해.Remember me 라는 체크박스를 체크해두면 일단 한번 로그인한 후에 일정시간 동안에는 별도로 로그인을 하지 않고도 백그라운드에서 로그인처리되게 해서 매번 로그인하지 않고도 이용할 수 있어. 지금은 이 기능이 구현되어 있지 않기 때문에 로그인을 한 후에 브라우저를 종료시켰다가 다시 접속하면 다시 로그인을 해야 하지.Spring Security 는 RememberMe 기능을 포함하고 있는데, 우선 아래 코드를 볼께.SecurityConfig.java...@Beanpublic SecurityFilterChain ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bpcBdN/btsKKcAZ5ah/OaTocJgoPLZL4NCWY2exvK/img.png)
일기 프로그램에 무슨 역할이 필요있겠어? 개인이 로그인해서 일기를 작성하고, 내가 작성한 일기를 볼 수 있으면 되었지. 그런데, 가만 생각해보니 회원 관리 기능을 넣는다면 역할 관리가 필요하겠더라고.권한과 역할은 엄밀히 말해서 다른거야. 이 포스트에서는 권한이 아닌 역할(ROLE)을 관리하는 방법에 대해서 알아보는거야.그래서 이번 포스트에서는 diary 프로그램에 역할 관리 기능을 넣어보려고 해.역할 관리 기반 구조 작성기존의 사용자정보 저장 테이블인 member 는 아래와 같이 구성되어 있었어.역할 관리를 하기 위해서는 역할 정보를 넣어주어야 하니까, 아래와 같은 스크립트를 이용해서 역할 컬럼(role)을 추가했어.--PostgreSQL QueryALTER TABLE public."member" ADD..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/yFKLG/btsKJM3EeYR/Ase8K7fAMvkzTeGwcVg4G0/img.png)
diary 프로젝트에서 @RestController 애노테이션을 붙여서 작성한 클래스는 DiaryController 하나뿐이야.이 클래스에서 정의한 5개의 함수 리턴값을 보면 void 이거나 Diary, List 로 이루어져 있지.DiaryController.java@RestControllerpublic class DiaryController { private final DiaryService diaryService; @Autowired public DiaryController(DiaryService diaryService) { this.diaryService = diaryService; } // Create @PostMapping("/diary") pu..