20220509부터 20220515를 포함한 TIL, WIL
항해 매니저님이 JWT와 API 키워드를 포함한 WIL을 작성하라 했다. 아마 그 말의 속뜻은 추정컨데 두 개념은 이번 주에 배운 것중 가장 중요한 것이며 앞으로도 계속 나온 것이니 그 두개를 더 공부하고 기억하라는 뜻으로 추정된다. 그 추정에 뒷받침되는 것으로 5월 12일 미니프로젝트를 제출할 때 JWT, 세션, 쿠키의 장단점을 논하라는 것을 댈 수 있을 것이다.
하지만 난 그다지 적고 싶은 마음이 없다. JWT와 API가 무엇인지 스파르타코딩클럽에, 인터넷에 수없이 나와있기 때문이다. 인터넷에 나와있는 내용을 정리해서 내 블로그에 적는다면 그 행위는 초등학교 때 했던 깜지와 무엇이 다르다는 말인가. JWT와 API는 스파르타 강의에서 짧게 집고 넘어갔을 뿐 그 이상 그 이하도 아니였다. 만일 그 두 개가 너무나 중요해서 이번주 키워드로 한다면 이 한주가 중요하다면 스파르타 코딩클럽에서 그 내용을 제공했어야 할 것이다.
TIL과 WIL은 내가 배운 것들을 적는다. 하지만 그 적는 내용은 내가 배운 것의 모든 것일 수 없다. 만일 그렇다면 이 TIL은 내용이 너무 방대해져 가독성이 없을 것이다. 만일 내가 적는 TIL이 블랙박스라면, 내가 적는 TIL은 상시 모드가 아니라 충돌이 발생할 시 저장되는 이벤트 모드이다. 내가 아는 것, 혹은 기록할 정도로 중요하다고 생각하지 않는 것들은 여러 사정으로 기록되지 않는다. 내가 모르는 것, 내가 알아야 한다고 생각하는 것, 내가 나중에 참고할 것들만 TIL로써 적힌다.
JWT와 API에 상세한 내용은 아래의 링크로부터 공부했다. 해당 글 이외의 많은 내용이 담긴 블로그와 기사, 정보들이 많지만 아래 두 링크의 내용들이 유독 가독성이 좋다. 두 개념에 대해 공부를 하고 싶은 분들은 꼭 한 번쯤 읽어보길 바란다.
https://brunch.co.kr/@jinyoungchoi95/1
https://aws.amazon.com/ko/what-is/api/
한 주간 굉장한 것들이 지나갔다. 특히 월요일부터 목요일까지는 고등학교 3학년 보다 더 많은 시간을 집중하고 힘썼는데, 목요일을 넘어 토요일까지 매주 이렇게 진행된다면 아마 체력적으로 정신적으로 버티기 어려울 것 같다. 일요일엔 조금은 여유로워도 좋을 것 같다. 수 많은 사람들이 어마어마한 자본을 부어 넣어 최고의 자동차를 만들지라도 결국 시즌을 끝내는 자동차는 많지 않다. 내 목표는 완주이다. 완주를 위해선 마디가 필요하다. 그 마디는 일요일이다. 이것이 내가 오늘 ‘배운' WIL이다.
https://programmers.co.kr/learn/courses/30/lessons/70128
class Solution {
public int solution(int[] a, int[] b) {
int answer = 0;
for (int i = 0; i < a.length; i++) {
answer += a[i]*b[i];
}
return answer;
}
}
// 먼저 answer 0을 선언
// int a와 int b에서 하나씩 꺼내와서 곱한다. 이 때 a나 b의 길이만큼 꺼낸다.
// 곱해진 걸 더한다.
// 각 배열을 더해 return
https://programmers.co.kr/learn/courses/30/lessons/70128
public class Main {
public static void main(String[] args) {
Solution solution = new Solution();
System.out.println(solution.solution("Pyy"));
}
}
class Solution {
boolean solution(String s) {
int p = 0;
int y = 0;
// 문자열을 배열로 바꾸는 것이기에 split메소드가 들어가야 한다.
String[] newS = s.toLowerCase().split("");
for (int i = 0; i < newS.length; i++) {
if ("p".equals(newS[i])){
p += 1;
} else if ("y".equals(newS[i])) {
y += 1;
}
}
// if (p == y){
// return true;
// } else{
// return false;
// }
// 위의 코드는 단순히 아래의 코드로 대체된다.
return p == y;
}
}
// s를 받는다. s를 받아 모두 소문자로 바꿔준다.
// p의 개수와 y의 초기값 0을 만든다.
// 문자열에 p와 y가 있으면 p와 y의 카운트를 올려준다.
// 찾은 개수가 동일하면 true, 다르면 false를 출력한다.
// 불리안을 변수로 생성하면 항상 답이 안 나온다.
https://programmers.co.kr/learn/courses/30/lessons/12918
class Solution {
public boolean solution(String s) {
// String[] array = s.split("");
String[] num = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "0"};
int length = s.length();
if (length != 4 & length != 6) {
return false;
}
return !s.replaceAll("[^0-9]", " ").contains(" ");
}
}
// s의 길이가 4나 6이 아니면 false를 리턴
// String s를 받아 array로 만든다.
// array 1~9까지 num을 만든다.
// 만약 num이 s에 '없으면' false를 리턴한다.
// 위의 조건이 안 되서 바꿨다.
// s 문자열에 있는 모든 문자를 공란(" ". ""는 안 됐음)으로 바꾸고 공란이 있으면 false가 나오는 걸로