결석 불가)https://teamsparta.notion.site/Kotlin-Spring-3-docs-e8b7d25c245b41cb9be3baca348e1fad
-> 이페이지에서 발제/특강 자료 가 이번주의 과제

=> 팀 노션에 작성 할 것
pwd : 현재 작업 위치를 보여주는 명령어ls : 내 폴더 내부의 폴더 & 파일 목록 조회ls -a: 숨긴 파일 폴더 모두 보여줌 (git 할 때 필요함)cd (change directory) : ls 명령어 에서 확인된 폴더로 이동
cd ../..: 두 단계 상위 폴더로 이동
mkdir git-lesson : 'git-lesson' 이라는 폴더 (디렉토리를 생성한다.)touch 파일명 : 현재 경로에서 파일 생성 1) git : 코드 변경점을 기록 (버전 관리 도구)
=> 면접용 : 소프트웨어의 변경 사항을 체계적으로 추적하고 통제하는 것
2) github : 온라인 백업 기능 및 팀원과의 코드 공유 및 협업이 용이
3) git 명령어 모음 (1) : (2) 는 2주차에 추가 예정
git init: git 초기세팅 , 정확한 프로젝트 폴더(경로) 에서 입력해야한다. (숨겨진 폴더로 .git으로 표시된다. -> 코드 추적 담당)git add 파일명: 해당 파일 add (모두 저장은 파일명 대신.을 사용하면 됨 (현재 위치))git commit -m"메시지 작성': 어떤 내용에 대한 커밋인지 잘 말해야 한다.
=> git commit 후 저장이 안되는 경우에는 계정 설정이 필요하다. (이메일, 닉네임)
=> add 와 commit 의 차이점 :
===> add : 저장 전 저장할 파일 지정
===> commit : 저장git status: 저장 여부 확인 하는 명령어git log: 위가 제일 최신 코드 (이전 커밋 로그를 볼 수 있다. 특정 커밋 id 를 이용해 rollback 같은 것을 할 수 있다.)git push origin '브랜치명': 해당 브랜치에 코드 수정 반영git clone <링크> .: 점을 안붙이면 아래 새로운 폴더가 생성된다. (웬만하면 . 붙이기)git pull origin '브랜치명': 다른 사람이 변경한 코드 가져오기 (해당 브랜치)
1) git branch -M main : branch 명을 master 에서 main 으로 변경
2) git remote add origin <github 주소> : 원래는 https 로 된 주소를 매번 치는 대신 origin 이라는 이름으로 대신하겠다는 의미
3) git push -u origin main :git push 명렁어만 입력해도 git push origin main 이 되도록 해줌
코드 :
class Solution {
public int solution(int[][] sizes) {
int answer = 0;
for (int i = 0; i < sizes.length; i++) {
if (sizes[i][0] < sizes[i][1]) {
int tmp = sizes[i][0];
sizes[i][0] = sizes[i][1];
sizes[i][1] = tmp;
}
}
int max_1 = sizes[0][0];
int max_2 = sizes[0][1];
for (int i = 1; i < sizes.length; i++) {
if(max_1 < sizes[i][0]) {
max_1 = sizes[i][0];
}
if(max_2 < sizes[i][1]) {
max_2 = sizes[i][1];
}
}
answer = max_1 * max_2;
return answer;
}
}
핵심 개념 :
핵심개념은 각 명함의 가로, 세로 크기 정보들을 통해 최대 가로 값을 가지는 명함의 크기와, 최대 세로 값을 가지는 명함의 크기를 구하는 것이 핵심이다. 이를 통해 모든 명함을 넣을 수 있는 지갑의 가로 세로 곱을 구하는 것이 이 문제의 핵심이다. for 문을 통해 모든 명함들에 대해 정렬했으며 특히 가로, 세로 값 중에서 제일 큰 값을 가지는 것을 0번 인덱스에 위치 하도록 하여 카드를 돌려도 로직이 동작 할 수 있도록 하였다.
코드 :
class Solution {
public String solution(String s, int n) {
String answer = "";
char[] data = s.toCharArray();
for (int i = 0; i < data.length; i++) {
if(Character.isLowerCase(data[i])) {
data[i] = (char) ((data[i]-'a' + n)% 26 + 'a');
}
else if(Character.isUpperCase(data[i])) {
data[i] = (char) ((data[i]-'A' + n)% 26 + 'A');
}
}
answer = String.valueOf(data);
return answer;
}
}
핵심 개념 :
아무래도 핵심은 어떤 형태로 'Z' 또는 'z' 범위를 초과시에는 다시 'A' 또는 'a' 부터 시작할 것 인지 인것 같다. 주어진 알파벳을 대소문자를 구분하여 'a', 'A' 를 빼고 n을 더함으로서 data[i] 값의 'a' 로 부터의 위치를 대략적으로 파악한다. 예를 들어 data[i] 가 'c'인 경우 'c' - 'a' 값에 더해줄 값인 n을 더하고 그값을 알파벳의 길이인 26으로 나누고 추후에 다시 'a'를 더함으로서 해결하였다.
코드 :
SELECT b.INGREDIENT_TYPE ,sum(a.TOTAL_ORDER) as TOTAL_ORDER
from FIRST_HALF a left join ICECREAM_INFO b
on a.FLAVOR = b.FLAVOR
group by b.INGREDIENT_TYPE
order by TOTAL_ORDER;
해결 방법 :
두 테이블 모두에 존재하는 FLOVOR 칼럼에 의견하여 a leftjoin b 를 수행한다. 이후 b 테이블의 INGREDIENT_TYPE 칼럼을 가져오고 a.TOTAL_ORDER 를 b 테이블의 INGREDIENT_TYPE 별로 묶은 그룹마다 sum 을 이용하여 합을 구한다. 이름또한 'TOTAL_ORDER'로 변경한다.
이후 order by 를 이용하여 TOTAL_ORDER 에 대하여 오름차순으로 정렬한다.
결과 :

코드 :
SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE
from ANIMAL_INS
where NAME in ('Lucy', 'Ella', 'Pickle', 'Sabrina', 'Mitty')
order by ANIMAL_ID;
해결 방법 :
in 을 이용하여 NAME 값이 위 처럼 해당 값이 존재하는지 확인하였다. 물론 name = 'lucy' or name = 'ella' ... 이런 식으로 할 수 있지만 그 방법 보다는 위 방법이 간단할 것 같다.
이후 order by 를 통해 ANIMAL_ID 의 오름차순으로 정렬하였다.
in 문을 위와 같이 사용 할 수 있다는 생각을 하게 됨
결과 :


=> 기대감을 줄 필요가 있다. 이래야 면접의 기회를 얻을 수 있다. 열심히 쓰는 사람은 손에 꼽는다.
처음에는 하루에 한번 씩 작성하기 -> 더 잘 써볼까 ? -> 꼼꼼히, 제대로 작성하기
-> 초기 : 강의 내용 정리 (오늘 배운것, 개념정리, 해당 개념이 필요한 이유, 사용법)
-> 개발 단계 정리 (설치하기, 초기세팅하기, xx만들기, ...)
-> 하루 회고 : 오늘 있었던 일 정리 (프로젝트 소통 오류, 느낀 점, 개선 방안)
-> 문제 해결 과정 (권장) : 발생한 문제가 무엇인지 작성, 발생한 코드 작성, 위 코드에서 문제점을 분석하고 가설을 세운다. 원인과 어떤식으로 해결한지 작성, 느낀 점 및 개선 방안 작성
결론 : 취업 === 증명 (일단 작성하기) -> 발전 시키기 (특히 앞으로의 프로젝트 회고에 정성을 들이기)

=> 나의 담당인 댓글 부분 관련 구현 모습이다. 이름과 댓글을 입력하고 작성하기 버튼을 누르면 google firebase 의 db 에 저장이 된다. addDoc, getDocs를 이용하여 db에 데이터를 쓰고, 읽는 과정을 살펴 볼 수 있었던 것 같다.
-> 본캠프 첫날 12시간이라는 시간은 생각보다 길지도 짧지도 않았던 시간이었던 것 같다. 튜터님께서 설명해주시는 유용한 강의를 통해 내가 몰랐던 내용이나 알아가야 하는 부분을 잘 살펴볼 수 있었던 시간이었던 것 같다. 오랜만에 12시간이라는 시간동안 공부를 한 것 같은데 오랜만인것 치고는 나쁘지 않게 했던 것 같다. (조금 피곤하긴 하다...) 그래도 시작이 반이니만큼 더 열심히 생활하고 TIL 작성 해야 겠다는 생각을 했다. 오늘 배운 TIL 권장 작성 방법을 바탕으로 앞으로 나날이 발전해 나가는 나를 기록 하고 싶다.