원래 2월의 목표1. SQLD 공부하기2. 책 읽기3. 알고리즘 공부하기4. 운동, 취미 열심히 하기 이번 달에는 공부, 운동, 취미 다 열심히 하고 싶었다.그런데 노는 건 왜 이렇게 재밌을까? 운동, 취미는 아예 안 하진 않았는데 공부는 진짜 안 했다.특히, SQLD 공부하는 거는 일하면서 쿼리 짜는 걸로조금 퉁쳐지지 않을까라는 혼자만의 타협을 했던 것 같다.그런데 일하면서 쿼리짜는 것도 확신을 갖지 못하고 짰다.이게 과연 좋은 쿼리인지 어떻게 짜야 좋을지 고민을 엄청 했는데 결국 좋은 쿼리로 짜지 못했던 부분들이 아쉽다. 앞으로 일은 일이고, 일을 더 야물딱지게 하기 위해서 공부하자는 마인드로 3월을 살겠다. 그리고 이번 달에 정리해서 올리려고 했던 주제에 대해 더 생각해보다보니내가 실수한 부..
더 빠르게 DB 조회하려면 튜닝을 하면 되지 않을까?근데 튜닝은 어떻게 하는거지...?에서 시작한 올해의 목표 SQLP 따자!!! SQLP는 튜닝 과목이 중요하기 때문에자격증을 준비하면 좀 더 효율적으로 쿼리를 짤 수 있게 되지 않을까 싶다. SQLP를 준비하면서 얻고자 하는 것1. 효율적인 쿼리를 작성할 수 있는 능력2. 쿼리 작성에 대한 자신감 향상 (1번 능력이 길러지면 자연스레 향상될 듯) 시험 일정SQLD와 SQLP는 겹치는 과목이 있기 때문에 우선 SQLD를 먼저 합격하고 SQLP를 도전할 예정이다. 올해의 시험 일정은 다음과 같다.먼저 3/8에 SQLD를 시험 보고8/23에 SQLP를 시험 볼 생각인데과연 6개월 정도 공부해서 합격할 수 있을지 걱정이지만 한번 해보겠다!!! 그리고 공부..
문제 상황익명 메시지 프로젝트를 진행하는 과정에 access token 재발급 요청이 수십 건 들어오는 문제가 발생 원인코드를 다시 확인해 보니 아래 1~3번 과정이 계속 반복되며 무한 요청 문제가 발생하고 있었다. 1. 서버의 Filter에서 access token을 재발급하라고 return 시킴.2. 클라이언트는 access token 재발급 요청을 서버에게 보냄.3. 서버는 토큰이 만료됐다고 다시 return 시킴. 해결재발급 요청 URI 인 경우 Filter에서 리턴 시키지 않고 통과시키는 방식으로 해결!! Filter에 아래 코드를 추가하여 문제 해결 // 건너뛸 URIprivate final List excludedUris = Arrays.asList("/api/v1/auth..
인코딩, Encocding 암호화, Encryption What is it? 데이터를 한 형식에서 다른 형식으로 변환하는 것 다른 사람으로부터 비밀이 유지되도록 데이터를 변환하는 것 사용 목적 보안을 목적으로 사용되지 않음. 데이터의 무결성, 유용성을 유지하고자 사용 보안을 목적으로 사용 데이터의 기밀성을 유지하고자 사용 key 사용 유무 X 인코딩, 디코딩에 key는 필요하지 않음. O 암, 복호화에 key가 필요 key에 따라 대칭키, 공개키 알고리즘으로 분류 예시 ASCII, UNICODE, URL encoding, Base64 AES, RSA, Blowfish 마무리 민감한 데이터를 보호하기 위해 인코딩을 사용하면 인코딩 된 표현에서 원본 데이터를 쉽게 재구성할 수 있기 때문에 보안성이 떨어진다...
사용한 자료구조 및 개념 : LinkedList, Queue 💡 문제풀이 아이디어 및 어려웠던 점 💫 아이디어 1️⃣ 톱니바퀴를 회전시키기 위해 추가, 삭제할 수 있으면서 index가 있는 LinkedList를 사용하자. ArrayList는 내부적으로 배열로 되어 있기 때문에 추가 삭제 시 N만큼 다시 데이터를 복사, 붙여 넣기 해야 하지만, LinkedList는 추가, 삭제 시 해당하는 노드만 변경해 주면 되기 때문에 좀 더 효율적일 것 같다는 생각에 LinkedList를 사용하였다. 2️⃣ Queue를 사용하자. 왜냐하면 모든 톱니바퀴는 순차적이 아니라 동시에 회전하기 때문에 회전해야 하는 톱니바퀴와 방향을 확인 후, 큐에 담아주고 그 후에 큐에 담긴 톱니바퀴들을 한꺼번에 회전시켰다. 👻 어려웠던 점..
사용한 자료구조 및 개념 : 순열 💡 문제풀이 아이디어 및 어려웠던 점 💫 아이디어 1️⃣ 순열을 이용하자. 2️⃣ A를 이용하여 C를 만들 때 문자열 그대로 가지고 다니자. 왜냐하면 0으로 시작하면 안 되는 C의 조건을 좀 더 쉽게 확인하기 위해 문자열 그대로 사용하였다. 👻 어려웠던 점 🚨처음에는 예제 2번을 이해하지 못했다. A가 1000, B가 5였는데 답이 -1이어서 "0001"도 있지 않나? 생각했다. ❗해결 : 문제를 잘 읽자!!! C는 0으로 시작되면 안 되기 때문에 1000만 될 수 있는데 1000은 5보다 크다. 따라서 조건을 만족하는 수가 없기 때문에 -1을 출력하는 것이었다. Solution Code & 주석 import java.io.BufferedReader; import jav..
생성자 constructor 자바에서 생성자는 클래스가 생성될 때 호출되는 메서드와 유사한 코드 블럭 - 객체를 초기화하는 데 사용됨.(객체의 필드 값을 설정) - 클래스에 생성자가 없으면 Java 컴파일러가 default 생성자를 만듦. 📢 생성자 규칙 1. 생성자의 이름은 Class 이름과 동일해야 함. class Bike{ Bike(){} // 생성자 } 2. return 값이 없음. - void 등 return type을 명시하면 안 됨. 3. abstract, final, static 키워드를 붙일 수 없음. 📔 생성자의 종류 1. 기본 생성자 - 파라미터가 없는 생성자 2. 파라미터가 있는 생성자 기본 생성자 - 객체 인스턴스 변수의 타입에 따른 default 값(0이나 null 등)으로 설정..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.