전체 글

개발 환경 분리하기 1단계 진행 중발생한 문제 사항이다.  application-local.yml 설정하기 중...!  🚨 문제 발생create class com.mysql.cj.jdbc.Driver 라는 문구가 계속 떴다. 구글링 해보니 DB가 제대로 연결되지 않아서 그렇다는 이야기가 있었다. 의존성을 확인 해보았는데 새로운 프로젝트이다보니 의존성을 추가해준 것이 없었고 서치한 대로 의존성을 추가하였다. 🔻 의존성 추가 후 build.gradle dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'mysql:mysql-connector-java' implementatio..
· PROJECT
프로젝트가 끝나고 업그레이드 시키기 위해 팀원들이 모였다.코스에서 만들어준 팀 레포로 계속 배포를 하고 있었기에 우리는 따로 team 을 만들어 거기에 새로 레포를 만들기로 하였고 이후 작업들을 배포하기로 하였다. 📆 계획세우기팀원들의 적극적인 참여를 위해 규칙적인 시간을 다시 정했다. 이전의 회의 시간은 내가 정한 세 시부터 여섯 시 까지였다. 기본 구현이 끝날 때 즈음 또 느슨해졌고 다 끝난 즉시 흐름이 끊기지 않게 이어나가고자 하였다.팀원들은 다시 모여 모이기 좋은 시간을 찾았고 우리는 오후 4시부터 모이기로 하였다!✔️ 10월 24일 까지 추가 기능 구현 하고 싶은 부분들을 작성 해오기로 하였다. ✨ 사용자 요구사항 정의서 작성하기팀원들이 각자 작성해온 부분을 바탕으로 뺄 부분은 빼고 더할 부분..
· KNOWLEDGE
TCP(Transmission Control Protocol)은 인터넷 상에서 데이터를 전송하기 위해 사용되는 프로토콜 중 하나이다. TCP 연결의 설정과 해제는 3-way handshake와 4-wayhanshake를 통해 이루어진다. TCP 의 연결 설정과 해제를 이해하기 위해서는 네트워크의 기본 모델인 OSI 7 계층부터 이해하는 것이 좋다. OSI 7계층 OSI 7 계층은 ISO에서 개발한 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 개방형 시스템 상호 연결 모델이다. 각 계층은 독립적이고 하위 계층의 기능을 이용해 상위 계층에 기능을 제공한다. OSI 7계층의 특징 "응, 표, 세, 전, 네, 데, 물” 각 계층을 지날 때 마다 Header가 붙게 되고 해당 계층의 기능과 관..
· KNOWLEDGE
대역폭(Bandwidth)이란?대역폭의 개념대역폭은 네트워크 연결의 ‘폭’을 의미한다. 특정 시간동안 네트워크를 통해 전송할 수 있는 데이터의 최대 용량을 나타낸다. 따라서, 대역폭이 높을 수록 한 번에 많은 양의 데이터 전송이 가능하다.✨ 한 번에 전송 가능한 데이터 양을 나타내는 것이 대역폭이며 대역폭이 네트워크 성능에 영향을 줄 수는 있지만(속도, 트래픽 병목현상 등) 대역폭이 곧 네트워크 성능은 아니다. 대역폭의 단위대역폭은 bps(bits per second) 로 표현된다. 초 당 전송할 수 있는 비트 수를 의미한다.bps ( Bits per Sec)Kbps ( Kilos per Sec)Mbps ( Megabits per Sec )Gbps ( Gigabits per Sec )...  대역폭(Ba..
· PROJECT
프로젝트 마무리가 보이고 있다. 끝이 보이는 시점에 문제 또한 하나 씩 더 더 보이는 중이다.ㅎㅎ 🚨 역할 부여 오류 권한을 부여하는데 있어서 아무 문제 없을 것이라 생각했는데 어느날 확인해보니 카카오로 만들어진 회원들은 문제가 없었으나, 일반 회원 가입을 진행한 회원에는 "ADMIN"과 "USER"가 동시에 부여되고 있었다. 정상적인 코드에서는 설정한 ADMIN_EMAIL과 다르다면 "USER" 권한을 주고, 똑같으면 "ADMIN"과 "USER"권한을 주게 되어 있는 것인데 현재 코드에서는 ADMIN 이메일에 "ADMIN"권한만 주고 일반 회원에게 두 가지 권한을 다 주고 있었던 것이다. 🔻일반 회원 가입 🔻ADMIN EMAIL로 회원 가입 🔨 문제 해결 방법 문제를 해결하기 위해 권한을 부여하는 "C..
· DevOps/AWS
프로젝트에서 AWS S3를 이용하여 Spring Boot 에서 이미지를 업로드 하는 것을 구현하였다. 프로젝트에서 AWS S3를 사용한 이유는 S3 버킷에 실제 이미지를 저장하고 이미지 참조 링크만 저장하여 DB에 저장함으로 용량을 줄일 수 있기 때문이다. 프로젝트를 진행하며 요금이 너무 많이 나와 인스턴스를 삭제하고 다시 만든 적이 있었는데 그 과정에서 S3 버킷도 다시 만들게 되고 접근 권한이 모두 사라진 것이다 🥲 이전에 설정 해놓은 접근 권한은 그저 구글링하여 보고 따라한 것이었던 탓에 오류가 발생한 후 다시 해보려니 쉽지 않았고 이렇게 S3에 대한 정리부터 다시 해볼까 하여 블로그에 정리하게 되었다! 😎 그리고 이전에는 모든 사람에게 권한을 줌으로써 이를 해결했다면 이번에는 공부를 하며 정책과 ..
CS 스터디하면서 다시 Spring 의 기본 동작 원리를 살펴보고 있는데 정말 어렵다 🤧 SPRING 이랑 가까워지려다가도 더 알면 알 수록 멀어지는 느낌이랄까?! 처음에는 JAVA의 특징들을 그대로 물려받은 것 같다 생각해서 쉽게 느껴졌는데 깊이 알면 알 수록 어렵게 느껴진다 🟢 DI 종류는 어떤것이 있고, 이들의 차이는 무엇인가요? 의존성 주입 방법에는 생성자 주입 방법, 필드 주입 방법, setter 주입 방법 이 있습니다. # 생성자 주입 방법 ✅ 객체가 생성될 때 생성자를 통해 의존성 주입 ✅ 필수 의존성을 처리할 때 권장 ✅ 객체는 완전히 초기화된 상태로 사용되기 때문에 완전하지 않은 상태(의존성 없이)로 사용될 수 없도록 강제할 수 없어서 안전함 ✅ 단일 생성자에 한해 ‘@Autowired’..
열심히 프로젝트 에러 수정을 하며 포스트맨으로 테스트를 하던 도중 문제가 발생하였다. 갑자기 로그인 후 마이페이지 조회가 안 되는 것이다 😱 (계속 테스트 하던 도중 안 됐다) 분명 방금 발급받은 토큰으로 동일한 memberId의 회원을 조회하고 있는데 401 에러( Unauthorized User )가 계속 떴다. 🫠 🚨 에러 발생 / ⚠️ Unauthorized error happened: JWT expired at 2023-10-12T11:35:37Z. Current time: 2023-10-12T11:35:44Z, a difference of 7897 milliseconds. Allowed clock skew: 0 milliseconds. 계속해서 이런 메세지가 떴는데 이 때 나는 회원 마이페이지..
#가비지 컬렉터가 나온 이유? C, C++언어는 할당한 메모리를 직접 해제 해줘야 한다. 따라서, 메모리 누수와 같은 문제가 발생하기 쉽다. Java에서는 가비지 컬렉터를 도입하여 자동으로 사용하지 않는 메모리를 회수해, 메모리 관리를 보다 효율적으로 할 수 있다. #가비지 컬렉터 Stop the world GC를 위해 JVM이 실행을 멈추는 현상 GC를 실행중인 스레드를 제어하고 모든 스레드의 작업을 중단, GC 작업이 끝나면 다시 실행 튜닝하면 좋다 라고 했을 때 꼬리질문 나올 수 있음 , 그럴 때는 article 정도는 찾아봤다. 라고 했다. GC의 대상 JVM메모리 영역에서 객체들은 heap영역에서 생성되고 stack 영역이나 method 영역에서는 객체의 주소값만 저장 → 참조하는 객체 heap..
· PROJECT
📌 pre-project D+6.5 (주말) #me -주말동안 tag 기능 추가 ☑️ Entity, TagController , TagMapper, TagService, Dto... - 내가 작성한 코드 팀장님 코드와 작성법 맞추기 * 우리 조는 프론트의 요청으로 OAuth2는 빼고 JWT만 하기로 했다. 🗝️ # team - BE 주말동안 우선 Answer와 Question 부분도 대략적인 CRUD가 완성이 되었다. 그리고 나는 팀장님과 많은 이야기를 나누었다. 😶‍🌫️ Answer 부분이 PR올라왔는데 문제가 많았기 때문이었다. Answer 부분에서 많은 오류가 발생하다보니 test를 진행하기 어려워 나와 팀장님은 모두 주석 처리하여 작업을 진행하였다. 문제 부분들은 코드 리뷰 시 하나하나 작성해 놓..
밝빛솔
밝게빛나는 솔딩