본문 바로가기

전체 글

(143)
#76 [Querydsl] Querydsl(참고) 새 프로젝트 생성 build.gradle - dependencies dependencies { // sql 출력 결과를 보기위한 라이브러리 추가 implementation 'org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4.1:1.16' // 오라클 driver (과거: 11버전) -> 19버전용 라이브러리 추가 설치 // todo: 오라클 추가 라이브러리( 19c ) implementation 'com.oracle.database.jdbc:ucp:19.14.0.0' implementation 'com.oracle.database.security:oraclepki:19.14.0.0' implementation 'com.oracle.database.security:osdt..
#76 [MSA] 쇼핑몰 프로젝트 - 회원가입 AuthService // TODO: 회원가입 공통 서비스 함수 정의 register(user){ // 임시 객체 let data = { email: user.email, password: user.password, name: user.name, codeName: user.codeName// 권한 } return http.post("/auth/register", data); } RegisterView.vue // TODO: 데이터 바인딩 속성 정의 data() { return { user:{ email: "", password: "", name: "", codeName: "ROLE_USER",// 화면에 보일 초기값 }, message: "", // 성공메세지 화면 출력속성 } }, // TODO: 함수..
#76 [MSA] 쇼핑몰 프로젝트 - 로그인 여부에 따른 로그인/어드민 버튼 로그인/로그아웃 로그인하면, 로그아웃이 보이고 로그아웃을 하면, 로그인이 보임 user 객체가 없으면 회원가입, 로그인 보인다. 회원가입 로그인 user 객체가 있으면 로그아웃이 보인다. 로그아웃 어드민 메뉴 computed 함수 export default { // TODO: computed 함수(복습) : {{ }} 여기나 v-if 조건식 등에 사용 // => 특징 : 매개변수가 없고, 무조건 return 값이 존재 computed: { // TODO: ROLE_ADMIN 권한이면 true를 리턴하는 함수 showAdminBoard() { if (this.$store.state.user != null) { // user 객체 속성 : codeName 안에 권한이 있음 return this.$store...
#76 [MSA] 쇼핑몰 프로젝트 - 자동 웹 토큰 인증 클래스 ★ 웹 토큰 검증 class 만들기 부서, 사원 게시판 볼때마다 인증을 계속 받아야 함. 번거롭다. 인증하는 절차를 미리 클래스로 만들고, spring security 자동화 기능에 끼워넣으면, 부서사원에서 게시판 조회시 웹토큰 인증할 때 끼워넣은 인증을 자동으로 계속함. 게시판 만들때마다 인증할필요없이 자동으로 일어남. 이걸 배움 인증로직을 백엔드에 넣어주고 화면이 바뀔 때 마다 넣어주면 소스가 복잡해짐 => 미리 검증하는 클래스 만들고 이 크래스를 security가 요구할 때마다 자동으로 실행하게 하면 됨 AuthTokenFilter : 게시판 조회시 자동 웹토큰 인증을 위한 클래스 spring security 가 자동으로 실행하도록 하기 위한 클래스 1. OncePerRequestFilter 클래스 상..
#75 [MSA] 쇼핑몰 프로젝트 - 로그인, 로그아웃 ★ jsp 의 쿠키섹션방식과 다르며 웹 토큰 인증 방식을 사용함 (웹 토큰은 spring이 지원을 안해서 수동작업이 좀 많다) 우리가 배포본, docker-build 하면 선생님이 docker-compose 해주심 설치는 디버깅이 안되기 때문에 메뉴얼에 맞게 똑같이 하는게 좋음. 개발 마인드 X 자동화기술, 디버깅 기술 에러났을 때 스스로 찾는 방법을 찾아야 함! 실무에서는 알려주지 않는다. 마지막 예제 vue 프로젝트 생성 1. axios 패키지 설치 - npm install axios - npm i axios(축약식) 2. App.vue 초기화, HelloWorld.vue AboutView.vue 삭제, index.js 수정 가 본문이라서 지우면 안됨 3. 이전 소스 복사 1) utils 복사, comm..
#74 [MSA] 배포 배포는 일반적으로 소프트웨어, 애플리케이션 또는 서비스를 공개적으로 이용할 수 있도록 하는 과정을 가리킵니다. 이 용어는 주로 소프트웨어 개발자나 시스템 관리자들이 사용하는데, 새로운 소프트웨어 버전이나 업데이트가 사용자들에게 제공되고, 그들이 소프트웨어를 다운로드하거나 설치할 수 있도록 하는 과정을 의미합니다. 이는 종종 웹사이트를 통해 이루어지며, 사용자들은 해당 소프트웨어나 서비스를 쉽게 액세스할 수 있게 됩니다. OrderController ApprovalController 같은 프로젝트에 했음 -> 이걸 한 프로젝트씩 쪼개면 그게 MSA 아키텍쳐. 핵심은 카프카 메세징을 쓰느냐 프론트. 백엔드 통으로 하고, 카프카로 쪼갤준비. 백엔드, 프론트 하나씩해서 도커. 근데 프론트, 결제, 주문 3개로 ..
#74 [MSA] 쇼핑몰 프로젝트 - 결제, 결제 확정 MVP : 우승팀 내 투표 모범상 : 출석률 좋은사람 index.js // /simple-approval/:sono : 결재 페이지 #5(결재 버튼 클릭) { path: "/simple-approval/:sono", component: () => import("../views/simple-product/SimpleApprovalList.vue"), } SimpleApprovalList.vue 결제는 배열 필요없이 한건씩 결제함 SimpleOrderService 주문 상세조회 함수 만들기 // TODO: 주문 상세조회 함수 (주문은 하나씩 일어남, 전체조회 할 필요 없음) get(sono){ return http.get(`/shop/simple-order/${sono}`); } SimpleApprovalL..
#73 [MSA] 쇼핑몰 프로젝트 - 주문 ★, 복합키 부모 - 자식 테이블간의 추가, 삭제 자식 테이블이 있어야 함 : 주문상세 주문목록 부모에 테이블에 insert -> 자식에 insert 됨 자식 delete -> 부모 delete 참조키 : 부모삭제 후 자식 삭제해야함 (자동삭제기능은 실무에서 잘 안씀) 부모 : 부서 10-40 자식 : 사원 10-30 -> 부서 10번 삭제하면 10번에 해당하는 사원은 당황하며 삭제가 되지 않음 index.js 메뉴 연결하기 { path: "/simple-order", component: () => import("../views/simple-product/SimpleOrderList.vue"), } 이전 페이지 : 장바구니 전체 페이지 이게 그대로 주문 페이지로 가고 밑에 배달지 주소가 추가 됨 SimpleOrder..