JS/boostCamp
24. 10. 17. 개발일지 // mysql, 인덱싱
* db 공부먼저 게시글 검색을 구현하려는데 무작정 제목, 내용에 index걸면 되는건지 궁금하다.elastic search를 왜 쓰는지도 궁금하다.일단 mysql 에 대해 학습해보자.나이 컬럼에 인덱스를 만들면 나이에 대해 정렬후 pk값이 매핑되는거구나.무작정 index를 많이 만들면 쓰기 속도만 느려질뿐이다.생성일자, 부서명 idx가있을때, 어느 컬럼에 인덱스를 걸어야할까?2개다걸기 -> 옵티마이저는 어차피 1개만 사용한다.결론 : 데이터의 중복이 적은 컬럼에 한해서 인덱스를 거는게 효율적이다! (항상 그런것은 아니다. explain analyze를 보고 판단필요)멀티 인덱스는 어떨까?created index (created_at, department)created index (department, ..
24.10.15. 개발일지 // oauth fix, 이미지 업로드, Not allowed to load local resource error 해결
* oauth fixwhite list 추가배포를고려한 redirectURL 수정async process(req: Request, res: Response, paramMap: Map, model: Map) { const clientId: string = process.env.GITHUB_CLIENT_ID; const clientSecret: string = process.env.GITHUB_CLIENT_SECRET; const host = req.headers.get('host'); const path = '/auth/github/callback'; const fullUrl = `${PROTOCOL.HTTP}://${host}${path}`; const redirectUR..
24.10.14. 개발일지 // github oauth구현
https://docs.github.com/ko/apps/oauth-apps/building-oauth-apps/authorizing-oauth-apps OAuth 앱 권한 부여 - GitHub Docs다른 사용자가 OAuth app에 권한을 부여하도록 설정할 수 있습니다.docs.github.com * github oauth깃헙 > 세팅 > dev > oauth app 생성cid ,c pw 발급받기auth/github로 접근시 깃허브로 redirect -> get요청 보내기dotenv.config(); // env환경변수 파일 가져오기export class GitAuthController implements ControllerV6{ async process(req: Request, res..
24.10.11. 개발일지 // 배포, redis, 댓글, 조회수증가, 페이징, dns, 에러페이지
* 댓글 기능 구현일단 뷰부터 만들자. 댓글 작성 이전글 : 미완성 다음글 : 미완성 목록으로 .comment-form-container { border: 1px solid #e0e0e0; border-radius: 8px; padding: 15px; margin-top: 20px;}.new-comment-form { display: flex; flex-direction: column;}.user-info { font-weight: bold; margin-bottom: 10..
24. 10. 10. 개발일지 // 글쓰기 구현, 동적 url 매핑 , n+1 문제
* 글쓰기 구현html HELLO. WEB! 멤버리스트 마이페이지 로그아웃 글쓰기 제목 내용 작성완료 cssbody { font-family: Arial, sans-serif; line-height: 1.6; margin: 0; padding: 0;}/* 네비게이션 바 스타일 */.navbar { background-color: white; color: black; padding: 1rem; displa..
24. 10. 9. 개발일지 // redirectAttributes, 로그인이완료된후 원래페이지 이동, db, n+1 문제
* 홈페이지(index) 구현로그인 안된경우, 아래와 같이 보여준다.로그인 된경우, 회원 닉네임, 멤버리스트, 마이페이지, 로그아웃, 검색어, 글쓰기 를 보여준다.방법1 : redirect주소에 쿼리파라미터로 dfjsfkljf?status=true 이런식으로 넘기기쿼리 파라미터를 템플릿엔진에서 접근해서 if(status) 이런식으로 구현ejs는 지원하지 않는것같다. 타임리프에서는 가능방법2 : index는 현재 white list에 등록되있다. -> 현 사용자가 로그인 될수도있고 안될수도 있다. -> index 접근전에 사용자의 상태를 알아야 한다.음... 이왕 auth filter를 구현했으므로 이를 활용해보자index를 블랙리스트에 넣고,요청이 index인경우 && 미인증 사용자인경우 -> 첫번째 사..
24.10.8. 개발일지 // 쿠키파서, db연결 , typeorm
* 쿠키 파서 fix, MyCookieParser 구현현재 cookie parser가 작동을 안한다.라이브러리로 불러와서 내가 만든 was와 호환이 안되는것 같다.-> 직접 만들자.역할 : cookie들을 파싱해서 req.cookies에 아래와 같은 식으로 넣어주면 되나?MyCookieParserimport {Request} from "../was/request";import {Response} from "../was/response";/** * 쿠키 문자열을 파싱하여 객체로 변환합니다. * @param cookieString 쿠키 문자열 * @returns 파싱된 쿠키 객체 * { * acookie: "dfdkfokeoef", * bcookie: "afkifkjeife", * ccookie:..
24.10.5~7. 개발일지 // 회원가입구현, redirect, cookie, session, 인증
* 회원가입구현프론트 컨트롤러 라우팅 추가this.handlerMappingMap.set("/user/save", new UserSaveController());import {Member} from "../../../domain/member/Member";import {MemberRepository} from "../../../domain/member/MemberRepository";import {ControllerV4} from "../ControllerV4";export class UserSaveController implements ControllerV4{ private memberRepository: MemberRepository = MemberRepository.getInstance(); ..