분류 전체보기
-
딥디크 향수 정품/가품 비교 (플레르드뽀)일상 2023. 11. 5. 14:45
딥디크 향수에 관심이 생기고 인터넷에서 최저가로 사기 위해 검색하다가 10만원도 안되는 가격에 정품이라고 하는 상품을 사봤다. (나는 향수도 가품이이 있는지 몰랐다..) 가품을 반품하기전에 정품과 비교해봤다. 정품은 롯데백화점에서 구매핬다. (20만원 초반, ※정가는 26만9천원) 왼쪽 정품, 비닐이 씌여있는 쪽(오른쪽)이 가품이다. 중간에 당기는 종이의 간격과 전체적인 폰트의 해상도가 낮다. 가품은 폰트가 얇다. 박스 밑부분에 인쇄되어있는 내용이 다르다.
-
스프링 시큐리티 중복로그인 안될 때 해결방법Spring Security 2023. 11. 3. 10:44
일반적인 스프링시큐리티 중복로그인 설정을 하였지만 여러 문제가 발생 1. 서로 다른 브라우저로 동일회원 로그인시 로그인처리가 되는 문제 2. 로그아웃하고 로그인하면 Maximum sessions of 1 for this principal exceeded 에러 발생 3. 브라우저를 강제로 종료후 다시 로그인하면 Maximum sessions of 1 for this principal exceeded 에러 발생 1. 시큐리티 설정파일에 ServletListenerRegistrationBean, SessionRegistry를 빈으로 등록한다. SecurityConfig.java @EnableWebSecurity public class SecurityConfig { //추가 @Bean ServletListene..
-
초간단 자바로 메일보내기(구글 SMTP) 2023년 최신Java 2023. 10. 7. 16:25
https://devmg.tistory.com/37 자바(java) 구글 메일전송(SMTP) 사용하기JAVA 구글 Gmail SMTP 이메일 전송 예제 1. JAVA로 구글 Gmail SMTP 이메일 전송을 위해 자르 mail.jar 파일을 Build path(lib)에 추가하거나 메이븐(Maven)프로젝트인 경우는 pom.xml에 아래 dependency 추가한다. javax.mdevmg.tistory.com 몇년전 자바로 구글SMTP 보내는 방법과 요즘 보내는 방법이 달라졌다.예전에는 구글 SMTP를 이용하려면 보안단계를 낮추고 이메일주소/비밀번호가 필요했지만 이제는 앱비밀번호란게 필요하다. 이 정보는 스프링 프로퍼티 파일에 입력해야한다. 앱비밀번호 발급받는 방법시작로그인후 Google 계정관리 클..
-
[오라클] 1:1 질문과 답변 게시판 SQL 정리SQL 2023. 9. 30. 17:22
프로세스 설명 - 답변은 한 번만 달 수 있다. - 답변은 중복으로 달 수 없다. - 목록에는 질문과 답변이 보여야함 테이블 생성 CREATE TABLE "BBS" ( "BNO" NUMBER, -- 게시판번호 "PNO" NUMBER, -- 부모 게시판번호 "ID" VARCHAR2(100 BYTE), -- 작성자 "REG_DATE" DATE, -- 작성일 "TITLE" VARCHAR2(255 BYTE), -- 제목 "CONTENT" VARCHAR2(255 BYTE) -- 내용 ) 임시 데이터 생성 SET DEFINE OFF; Insert into BBS (BNO,PNO,TITLE,ID,CONTENT,REG_DATE) values (1,null,'제목1','test','내용1',to_date('23/09/3..
-
React Redux 리액트 리덕스란?React 리액트 2023. 9. 21. 14:25
리덕스란 JavaScript 상태관리 라이브러리이다. 리덕스의 본질은 Node.js 모듈이다. 리덕스는 쉽게 설명하면 상태 관리의 로직을 컴포넌트 밖에서 처리 하는 것이다. 리덕스를 사용하면 스토어라는 개체 내부에 상태를 담게 된다. 액션(Action) : 상태 변화를 일으킬 때 참조하는 객체이다. - const mapActionToProps = (dispatch) => { } 함수 사용 - Action이라는 단어는 Event와 같다고 생각하면 된다. - dispatch 인수에서 Ruduce로 넘길 객체(type)를 정의한다. - Action이 실행되고 끝나면 type을 반환하는데 type은 Reduce로 전달된다. 스토어(Store) : 애플리케이션의 상태 값들을 내장하고 있다. - 리덕스에서는 단 하..
-
컴포넌트(6) 이벤트 핸들러 Event HandlerReact 리액트 2023. 9. 7. 16:34
1. 컴포넌트에서 DOM 이벤트 사용 - 컴포넌트에서 출력된 특정 DOM 객체에 이벤트 컴포넌트가 동작하기 위해선 DOM이벤트 프로퍼티를 사용해야 한다. - HTML 기존 형식을 카멜식 표기로 변경해서 사용한다. onclick => onClick onkeyup => onKeyUp ="" 안에 함수를 쓰는 게 아니라, {}안에 쓴다. onClick="changeName()" (x) onClick={changeName} (o) ex) import React, { useState } from 'react'; const Main = () => { const [ myName, setMyName ] = useState("Dev.MK") function changeName() { setMyName(myName ===..
-
컴포넌트(5) 리액트 훅(react hook)사용 - useReducerReact 리액트 2023. 9. 7. 11:18
1. useReducer 훅이란? - useReducer은 상태를 관리하고 업데이트하는 훅인 useState를 대체할 수 있는 함수이다. - 한 컴포넌트 내에서 State를 업데이트하는 로직 부분을 그 컴포넌트로부터 분리시키는 것이 가능하여 코드의 최적화 할 수 있다. 기본형 const [state, dispatch] = useReducer(reducer, initialState); state : 현재 상태 dispatch : action을 발생시키는 함수 reducer : state와 action를 받아 새로운 state를 반환하는 함수 initialState : 초기값 같은 로직을 각각 useState훅과 useReducer를 사용하여 비교해보는게 이해가 빠르다. App.js import Counte..