TIL(Today I Learned)
-
[TIL] 인프런 JPA 프로그래밍 기본 강의내용 요약TIL(Today I Learned) 2023. 1. 17. 23:52
*20230117의 회고 인프런 갓영한님의 강의를 들으면서 노트에 적으며 요약한 내용을 블로그에 옮겨 적으려 한다. 지금 시대는 객체를 관계형 DB에 관리! -> 그러려면 수많은 쿼리를 날려야 함 => SQL 에 의존적인 개발을 피하기 힘들다. SQL 중심적인 개발의 문제점 무한 반복되고 지루한 코드들 (CRUD) 객체 vs 관계형 DB 의 패러다임의 불일치 객체는 참조할 수 있는 반면, RDB 는 외래키를 사용함 (ex) member.getTeam() vs JOIN ON M.TEAM) 객체 지향 프로그래밍은 추상화, 캡슐화, 정보은닉, 상속, 다형성을 제공 but! RDB 는 이러한 기능 없음 객체 -> 그래프를 탐색하듯 자유롭게 참조하면서 데이터를 가져올 수 있다. RDB -> 처음 쿼리를 어떻게 작..
-
[TIL] 에라토스테네스의 체(소수 찾기)TIL(Today I Learned) 2023. 1. 13. 19:21
*20230113 의 회고 https://school.programmers.co.kr/learn/courses/30/lessons/12921 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 오늘 알고리즘 문제를 풀다가, 소수를 구하는 문제를 마주했다. 'n 이하의 수에서 소수의 개수를 구하시오.' 라는 문제를 만났을 경우, 코테 공부를 어느정도 한 사람이라면 이중 for 문을 이용해서 구하면 되겠다는 생각은 쉽게 할 수 있을 것이다. 그러나 만약 n의 값이 매우 큰 수가 주어진다면? 무조건 시간초과로 문제풀이에 실패할 것이다. 보통 이 문제는 에라토스테네스..
-
[TIL] Deque 자료구조TIL(Today I Learned) 2023. 1. 11. 22:24
*20230111의 회고 https://school.programmers.co.kr/learn/courses/30/lessons/120844 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 위의 링크는 오늘 알고리즘 문제 스터디를 하면서 풀었던 문제다. direction 이 "right" 이면 주어진 배열의 원소를 오른쪽으로 한칸씩 이동시키는 것이고, "left" 이면 주어진 배열의 원소를 왼쪽으로 한칸씩 이동시킨 배열을 출력해주는 문제이다. 우선 나의 풀이를 먼저 첨부하자면, 이렇다. public static int[] solution(int[] numb..
-
[TIL] Spring Security 기본 개념 익히기TIL(Today I Learned) 2023. 1. 9. 20:56
*20230109의 회고 오늘은 스프링 시큐리티의 기본적인 개념에 대해 학습하였다. 오늘 알게 된 몇가지 내용을 기록하려 한다. Spring Security : 스프링 서버에 필요한 인증 및 인가를 구현하기 쉽게 해주는 프레임 워크 CSRF(Cross Site Request Forgery) : 사이트 간 요청 위조 공격자가 인증된 브라우저에 저장된 쿠키의 세션 정보를 활용하여 웹 서버에 사용자가 의도하지 않은 요청을 전달하는 것 -> 요청 위조! 쿠키 기반의 취약점을 이용한 공격 SecurityFilterChain Spring Security는 요청이 들어오면 Servlet FilterChain을 자동으로 구성한 후 거치게 하는데, 이때 여러 Filter를 Chain 형태로 묶어놓은 것이 Security..
-
[TIL] 세번째 프로젝트를 마치며... KPT 회고TIL(Today I Learned) 2023. 1. 6. 16:51
Keep (이번 프로젝트에서 좋았던 점을 통해 앞으로 유지(Keep) 할 사항) 솔 실력이 부족한 팀원과 잘하는 팀원이 2인 1조가 되어서 기능을 함께 구현하고, 그 과정에서 부족한 부분을 채워나갈 수 있어서 좋았다. 지환 코드를 작성할 때, 평소에 놓치고 있는 부분이나, 고정관념으로 사고의 확장이 힘들었지만, 이번 프로젝트를 통해 고정관념을 깨고, 놓쳤던 부분들을 다시 점검할 수 있었다. 또한 나는 해당 코드에 대해서 이렇게 생각하는데 팀원들은 왜 그렇게 생각하는지를 이야기 함으로써 인사이트를 넓힐 수 있었다. 작은 기능들이지만 의미있는 코드를 작성할 수 있도록 생각하고, 모르는 지식을 습득해서 코드를 이해함에 있어 좋았다. 정완 역시 모르는 것은 잘 아는 사람과 함께 하면 이해 하기가 쉽다는 것 모르..
-
[TIL] JWT로 인증 인가 구현하기TIL(Today I Learned) 2023. 1. 5. 12:11
*20230105의 회고 Naver API 를 이용하여 관심상품을 검색하고, 저장하고, 조회하는 서비스를 개발하던 중 인증/인가에 대한 부분을 JWT 로 해결하였다. 그 과정을 기록하려 한다. 1. 문제점 - 웹 통신을 하는데, 클라이언트의 정보를 서버가 모두 가지고 있어야 할까? 그렇다면 클라이언트의 정보가 많아지면, 서버의 부하가 많이 걸리지 않을까? - Http 통신은 비연결성, 무상태로 이루어 지는데, 클라이언트에 유저 정보를 저장한다고 치면, 어떤 서비스를 요청할 때 마다 서버로 id와 password 를 보내줘야 할까? 2. 해결 방법과 알게된 점 - JWT 를 이용하여 인증 인가 구현을 한다. - JWT 를 API 요청 시 마다 Header에 포함해서 요청한다. - 서버는 secret key..
-
[TIL] @PathVariable의 변수명 차이로 인한 오류TIL(Today I Learned) 2023. 1. 2. 23:12
*20230102의 회고 오늘 게시판을 만들던 중, POSTMAN으로 값이 잘 들어오나 테스트를 하는데 회원가입, 로그인, 전체 게시글 조회는 잘 동작하는데, 게시물 id를 PathVariable로 받는 로직들은 제대로 동작하지 않았다. 이 문제를 해결하는 과정을 기록하려 한다. 1. 문제점 - 회원가입, 로그인, 게시물 작성, 전체 게시글 조회는 잘 동작한다. 그러나 게시물 id 번호를 변수로 받아서 게시글을 조회하거나, 수정, 삭제하는 로직이 잘 동작하지 않는다. 2. 시도한 방법, 해결 - 이 문제들의 공통점은 @PathVariable 을 사용하여 id 값을 받는다는 것이다. 따라서 URI 매핑 부분의 @PathVariable 의 파라미터의 이름을 postId로 맞춰보았다. 그랬더니 해결되었다!! ..
-
[TIL] 오늘의 회고...TIL(Today I Learned) 2022. 12. 30. 01:47
*20221229의 회고 드디어 내일부터는 세번째 팀 프로젝트가 시작된다. 그 전까지 기초공부를 최대한 하고 싶었는데, 아직 많이 부족한 것 같다. 주말이 껴 있으니 이번주 주말에는 꼼짝없이 공부만 해야겠다. 내일부터 프로젝트가 시작되지만, 지환님의 의견으로 오늘 우선적으로 프로젝트 기초 세팅을 잡았다. 자바 버전을 팀원들과 맞추고, 스프링 버전과 데이터 베이스는 어떤것을 사용할지 등을 정했다. 이것만 먼저 시작해도 뭔가 시간을 매우 절약한 느낌이 들어서 지환님께 너무 감사했다. 내일 자세한 팀 프로젝트 내용이 나올 것이다. 아마 그동안 진행했던 과제와 비슷하게 팀프로젝트가 진행되지 않을까 싶다. 그간 내용이 어려워서 따라잡지 못했고, 과제도 미흡한 점이 많았는데 이번 프로젝트를 거치고 나면은 그동안 진..