카테고리 없음2024. 6. 24. 00:482024 목표

1. 8월 정처기 실기 2. 8월 SQLD 자격증 3. 자격증 시험끝나면 개인 프로젝트 RUN!4. 알고리즘 문제 하루에 하나씩 해보기 ! (코테 티어 찍어보고싶음)5. 일주일에 한번 블로그에 기술 기록  RUN N RUN

ArrayList 와 LinkedList
JAVA2024. 6. 13. 01:20ArrayList 와 LinkedList

자바의 자료구조이며 이 List들은 중복된 값을 가질수 있다. 컬렉션 프레임워크인 List의 인터페이스를 구현한 클래스다. 기본적으로 List 의 기능을 따르지만 각각 다른 기능을써서 다르게 불리는것이다. ArrayList 는  동적으로 배열의 값을 추가, 삭제 가능하며 자동으로 크기를 조절할수있다. LinkedList는 Node 란 것을 사용하여 item에 다음 노드의 주소를 붙여 사용한다. 둘의 차이는 기능으로 인한 성능 차이도 있어 코드로 예제를 첨부하였다.빅오표기법에 따라 어느부분에 뛰어난지 파악후에 적재적소에 써야할거같다.

length 와 size 의 차이
JAVA2024. 6. 13. 00:58length 와 size 의 차이

자바의 초창기에 자료구조는 배열만 있었는데 추후 1.2 버전에서 컬렉션 프레임워크가 추가되었다.length 는 배열의 길이를 가져오고 size는 배열의 갯수를 가져온다둘의 차이는 정적과 동적의 차이라고 알고있다. 배열의 경우 값을 변경 추가 삭제 를 할수없어  길이만 반환하면 되지만컬렉션 같은경우 값의 추가 삭제가 가능하며 값의 갯수를 가지고 와야해서 size를 써서 갯수를 불러온다.

빅오 표기법
JAVA2024. 5. 28. 14:19빅오 표기법

위 그래프가 나타내는건 연산 횟수 와 연산 증가량 이다. 정확한 속도가 아닌 얼마나 빠르고 얼마나 느린지 상대적으로 그래프화 한것  O(1) : 1번의 연산으로 수행한다. ( 예: 배열 인덱스 찾기)배열의 인덱스를 바로 찾을수있는 이유 ?예를들어 int 배열을 만들었을 경우 , int 는 4byte를 갖고있으니 byte를 계산해 해당 인덱스를 바로 찾을수있다 O(log n) : log n 만큼 연산 (예 : 이진 탐색 알고리즘은 입력 크기를 반씩 줄여가며 검색을 수행)  O(n) : n번의 연산을 수행한다 ( 예 : 배열에서 주어진값 같은 값 찾기)인덱스 찾기와 달리 값을 찾는건 해당 배열의 칸마다 확인을 해야한다.  O(nlog n) : n * log n 만큼 연산 (예 :보통 정렬 알고리즘이나 분할 ..

인생의 2번째 해본 팀 프로젝트
프로젝트2024. 5. 17. 00:14인생의 2번째 해본 팀 프로젝트

2차 프로젝트도 팀원이 같고 그대로 내가 팀장을 맡고 진행하였다. 1차 프로젝트에는 맡았던 역할과 다르게 이번엔 할것들이 많았다.  JWT 인증, 회원가입 CRUD , AWS + 도커 + nginx 배포를 진행하게되었다. JWT 는 자료는 많은데 버전마다 구현로직이 다달라 애를 많이 먹었다. 회원가입은 다른것보다 쉬울거같아 일단 최후방으로 밀고 JWT부터 진행하게되었다. JWT 진행하면서 포기할까도 생각했지만 유튜브에서 귀인을 만나...진행할수있었다.    위에 사진들은 배포서버에서 로그인후에 찍은 사진입니다.     jwt 로직을 다짜서 postman 으로 확인했는데 postman으로 잘되던데 로컬에서는 잘 안됬는데 이유가 CORS 설정과 SSL 때문이었다. 백엔드에서 브라우저 헤더에 access 토큰..

팀 프로젝트 중 JWT 관련 트러블 슈팅
프로젝트2024. 5. 6. 00:26팀 프로젝트 중 JWT 관련 트러블 슈팅

2차 프로젝트 마무리단계라 프론트와 매핑 맞추는 중에 로그인했는데 JWT가 브라우저 헤더에는 들어오지만 Axios로 헤더로 불러와서 콘솔로 찍어봤는데 위에처럼 아무 값이 없는 에러였다. 어떠한 코드로도 불러올 수 없었다. 관련자료를 찾아보니 CORS 정책 때문이었다.난 분명히 CORS 허용을 다해줬는데도 왜 안되었을까?라는 의구심이 들었는데 알고 보니 CORS정책으로 인해 모든 헤더를 다 보여주지 않고 설정을 추가 안 해주면 Standard 헤더(Cache-Control, Content-Language, Content-Type, Expires, Last-Modified, Pragma)만 보여줘서 JWT에 관한 헤더를 Axios 가 받질 못한다고 한다.  그래서 스프링부트 시큐리티 쪽에서 헤더를 추가로 보..

윈도우(ubuntu) + AWS 연동
Doker+AWS2024. 5. 4. 19:35윈도우(ubuntu) + AWS 연동

Putty로 연동해 보고 ubuntu로도 연동해보고 싶어서 윈도우 PowerShell로 진행하였다. Putty -> 윈도우를 위한 ssh 클라이언트 , Ubuntu는 내장되있어서 따로 설치필요없이 명령어로가능하다.putty는 pem 키를 ppk 키로 변환하여 썼어야 했고 ubuntu에서는 pem 키로 그대로 쓰면 된다. 진행하다 보니 권한에러가 떴다. 해당키에 권한이 너무 많이 부여돼있어서 권한 에러가 난다고 한다. 400 또는 600으로 권한부여를 다시 해주면 된다고 하는데 같은 에러가 계속 떴다. 찾아보니 윈도우 내에 있는 파일은 Linux언어를 잘 못 받는다고 한다. 그래서 ubuntu 내에 ssh 폴더로 옮겨 주고 그쪽에서 실행해야한다고 한다. 해당 pem 키 윈도우내 폴더로 들어가 설치되어 있는..

배포를 위한 Linux(ubuntu) + docker 설치
Doker+AWS2024. 5. 2. 22:14배포를 위한 Linux(ubuntu) + docker 설치

시작하던 프로젝트가 거의 끝나고 merge 후에 실행이 잘된다면 배포 예정이라 docker 설치와 함께 Linux 기본 명령어를 공부했다. 윈도우와 다르게 CLI로 진행하다 보니 설치 중 오류가 많이 났다.  윈도우만 깔면 연동되는 줄 알았는데 아니어서 당황했다. 그래서 바로 도커문서를 참조해 설치 시작했다.https://docs.docker.com/engine/install/ubuntu/ -> Linux(Ubunt) 설치를 위한 도커에 있는 설명서문서 그대로 복사해서 넣어줬는데 PUBKEY 에러가 났다. 구글링과 GPT 물어보며 찾았는데 PUBKEY를 제대로 못 받아와서 그렇다고 한다. 다음과 같은 명령어를 넣어주니 해결이 됐다.    pubkey 해결 명령어 : curl -fsSL https://do..

image