분류 전체보기

    프로그래머스 숫자게임 c++ // 이진탐색, 투포인터

    프로그래머스 숫자게임 c++ // 이진탐색, 투포인터

    https://school.programmers.co.kr/learn/courses/30/lessons/12987[프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr](https://school.programmers.co.kr/learn/courses/30/lessons/12987)처음접근이분탐색 && visit 이용upper_bound로 초과인 것 선택 -> 그것 제출문제 : A가 정렬이 아니기때문에 뒤의 작은숫자에대해 B가 점수를 얻는경우를 계산못함.반례 : A [ 2 2 1]B [ 1 2 3]3제출 , 1점2보다 큰 미방문 없음 -> break, 종료실제정답 : 2점#include using names..

    백준 1377 버블정렬 c++ // 버블정렬 필요 사이클 구하기

    https://www.acmicpc.net/problem/1377 버블정렬이 완료될때까지 몇 사이클이 필요한지 구하는 문제.  1. 버블 정렬의 동작 방식예제: [10, 1, 5, 2, 3]첫 번째 패스:[10, 1, 5, 2, 3] -> [1, 10, 5, 2, 3] -> [1, 5, 10, 2, 3] -> [1, 5, 2, 10, 3] -> [1, 5, 2, 3, 10](10이 한 패스에서 한 칸씩 오른쪽으로 이동)두 번째 패스:[1, 5, 2, 3, 10] -> [1, 2, 5, 3, 10] -> [1, 2, 3, 5, 10](5가 제자리로 이동)세 번째 패스:[1, 2, 3, 5, 10](변화 없음, 정렬 완료)2. 핵심 아이디어각 숫자가 "최종 위치"까지 가는데 필요한 왼쪽으로의 이동 횟수를 찾..

    [Redis] Redis를 이용한 우아한 조회수 증가

    [Redis] Redis를 이용한 우아한 조회수 증가

    * 조회수 증가 구현의문 : 조회수가 +1 될때마다 db에 update 를 하는게 좋은가?사용자가 100명일때 한게시물을 조회하는 경우 -> 100개의 db update 쿼리 critical 한 정보가 아니기때문에 얻는 이득대비 db 비용이 크다고 생각한다.개선 : 레디스캐시에 조회수를두고 여기에 업데이트한다.5분마다 db에 업데이트 쿼리를 날린다.5분에 1번만 db에 update 쿼리를 날린다. 우분투에 redis설치* 리눅스서버의 redis 연결config참고로 host에 192로 시작하는 내부ip를 입력해야 작동한다. dotenv.config해야 제대로 .env 파일의 내용을 불러온다.import { createClient } from 'redis';import * as dotenv from 'do..

    24. 10. 17. 개발일지 // mysql, 인덱싱

    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 해결

    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구현

    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, 에러페이지

    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 문제

    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..