H E L L O    W O R L D !
...

총 방문자 수

...

[]

총 포스팅

분류 전체보기

·도커
개요도커의 컨테이너는 내부에 네트워크가 따로 존재한다. 우리가 자주 사용하는 localhost에 대해서 생각해보자. localhost는 기본적으로 로컬머신의 ip주소를 나타낸다. 자, 앞서 컨테이너에 네트워크가 따로 존재한다고 했다. 즉, 도커 컨테이너 내부에서 실행되는 app에서 localhost를 사용한다면 도커 컨테이너의 내부 네트워크를 가리킨다. 그럼 어떻게 컨테이너와 우리의 로컬머신을 통신할 수 있게할까?바로, host.docker.internal 을 사용하면 된다! 이것을 사용하면 도커 컨테이너 내부에서 우리의 로컬 머신과 통신할 수 있다.네트워크자, 위 내용으로 도커 컨테이너와 우리의 로컬 머신이 소통하는 방법에 대해 알아봤다. 그럼 컨테이너 간 통신은 어떻게 하는 걸까?docker cont..
2일 차 진행상황원래는 로그인 User를 받아와야 하는데 아직 구현이 안돼있어서 빠르게 null로 넣고 기능 구현을 하기로 했다. 순서는 장바구니 -> 주문 순으로 구현을 진행했다. 구현하고 있던 중 튜터님의 피드백을 받았는데 우리의 Response 부분의 문서가 제각각이어서 통일하라고 피백을 받았다. 감이 안 잡혀서 튜터님께 여쭤보고.. 공통 Response를 만들고 data는 제네릭으로 처리하면 된다는 피드백을 들었는데.. 순간 띠용 했다. 이렇게 만들 수도 있구나 하고 얼른 아이디어를 채택했다. 확실히 프런트 쪽에서 본다면 이렇게 하는 게 훨씬 편할 것 같다고 극히 공감했다. 왜 이런 생각을 못했었지...@Getter@NoArgsConstructor(access = AccessLevel.PROTEC..
·부트캠프/Dev
시작!사실 아웃소싱 프로젝트는 지금 글 쓰기전인 목요일날 시작됐다. 머리빠지게 구현하느라 밀려서 지금부터 작성해야겠다.ㅎㅎ 그래도 팀플이 세번정도 하니까 어느정도 감도 잡히고 익숙해진 것 같다. 이번 프로젝트부터 갑자기 난이도가 상승한 것 같다. 이번 프로젝트의 컨셉은 배달의 민족 같은 배달 플랫폼을 외주받았다 생각하고 구현하는 것이었다. 필수 구현은 어느때와 마찬가지로 구현할 것들이 많지 않았는데, 추가 기능 구현에 13개나 있었다.다들 처음에 이걸보고 추가 기능구현은 일단 생각하지 말고 필수구현부터 끝내자고 얘기가 나왔다.API 명세, ERD 명세, 와이어프레임까지 막힘없이 진행됐다.ERD를 필수구현쪽만 생각해서 짰었는데, 추가 기능 구현도 생각해서 테이블을 설계하려고아래 처럼 바꿨다가 튜터님께 한소..
HLS 변환이번 프로젝트에서 동영상 스트리밍을 hls 프로토콜로 정했다. js의 경우 라이브러리들이 존재하는데, 스프링 부트로 하려니까 시작부터 막막했다. 여러 자료를 찾아보고 라이브러리가 있긴 했는데 적용 과정에서 문제가 있는지 제대로 만들어지지 않았다. 그래서 직접 Proccess 클래스를 사용하기로 했다.hls 변환 과정은 다음과 같다.클라이언트가 MultipartFile형식으로 서버에 보낸다.서버에서는 로컬에 저장한다.hls 결과물을 생성할 폴더를 만든다.mp4 -> m3u8로 변환시킨다.hls 결과물 폴더에 저장한다.String fffmpegCommand = "ffmpeg ...명령어들...";Process proccess = Runtime.getRuntime().exec(ffmpegComman..
사이드 프로젝트 도전부트캠프를 진행하면서 과제를 빨리 끝내고 남은 시간에 다양한 기술을 써보는 시간을 가져보려고 한다.목적이 사이드 프로젝트의 목적은 많이 사용하는 기술들 중 안써본 기술들을 많이 써보면서 고민해보고, 기본기를 높이기 위함이다.주제사이드 프로젝트는 유데미와 인프런같은 나만의 인터넷 강의 사이트를 만들어보는 것이다. 선정 이유는 내가 배우는 것을 좋아하는데 이런 사이트 덕분에 도움을 많이받아서 나도 입문자, 배우려는 사람들에게 도움을 줄 수 있는 인터넷 강의 사이트를 만들어보고 싶었다. * 추가 컨셉 *원래 인터넷 강의사이트였지만, 아이디어 회의로 우리는 테크톡과 같은 너무 길지 않은 영상들을 공유하는 사이트를 제작하면 어떨까  짧막 상식 같은 지식 영상을 공유하는 플랫폼을 만들어보기로 했..
·트러블 슈팅
문제@RestController@RequiredArgsConstructorpublic class CommentController { private final CommentService commentService; @PostMapping("/todos/{todoId}/comments") public ResponseEntity saveComment( @Auth AuthUser authUser, @PathVariable("todoId") long todoId, @Valid @RequestBody CommentSaveRequest commentSaveRequest ) { return ResponseEntity.ok(co..
·부트캠프/Dev
프로젝트 들어가기 전프로젝트에 들어가기 전에 개인과제를 진행하다 보니 팀원 간 소통이 별로 없어서 팀프로젝트에 걱정이 많았었다. 프로젝트 들어간 후일단 내가 팀장을 하기로 했고, 걱정과는 다르게 팀원분들 모두 적극적으로 참여하시고(다들 I 셨나 보다) 진행도 원활히 되었다. 작업 분담일단 우리가 인원이 적은 관계로 판을 키우지 말고 필수에 집중해서 완성도를 높이기로 했다. 구현해야 할 필수 사항은 유저관리, jwt로그인 및 인증 인가, 글 관리, 친구 관계 관리가 있었다. 이 중 나는 프로젝트에 들어가기 전에 미리 스프링 시큐리티로 jwt 액세스토큰과 리프레쉬토큰을 이용해서 로그인과 인증 인가를 하는 방법에 대해 미리 공부를 하고 있어서 이 부분을 내가 맞기로 했다. 나머지 두 분에게는 유저 관리와, 글..
·부트캠프/Dev
기능 구현오늘은 마지막날이다. 이전에 연습해오던 연관검색 기능을 구현해서 넣어볼 것이다. 넣는 이유는 튜터님께서 알려주신 TRIE 알고리즘을 공부하다가 연관검색이라는 기능에도 관심이 생겨서 찾아봤었는데 이번 프로젝트에서 내가 찾고 싶은 정보와 연관된 글 목록들을 보여주는 기능이 있으면 편리할 것 같다는 생각이 들어서이다.supabase, pgvector, Ollama와 mxbai-embed-large모델을 사용했다.supabase는 임베딩된 벡터값을 저장하기 위해 사용했다.Ollama를 사용하면 내 컴퓨터에서 LLM을 돌릴 수 있다! 즉, 유료 API를 사용하지 않고 직접 돌릴 수 있다.ollama를 사용하기 위해선 expressjs로 간단하게 서버를 만들었다. 물론 expressjs를 사용해본적이 없어..
·부트캠프/Dev
기능 구현오늘은 친구 기능과 북마크 기능을 구현하였다.친구 기능친구 기능은 구현할 때 테이블 설계에 두 가지 선택 사항이 있었다.친구 테이블 하나로 할지친구 테이블과 친구 요청 테이블을 분리할지이번에는 친구 테이블 하나로 관리를 해줬다. 요청한 유저의 아이디와 요청받은 유저의 아이디, 그리고 enum으로 Waiting과 accepted상태를 관리해주었다.유저 테이블과 친구 테이블은 1:N관계로 설계했다.처음에는 url를 만들 때 애를 먹었던게 친구 삭제와 친구 요청 거절이 적고 보니까 똑같이 /api/friends/{id} 였다. 그래서 고민 끝에 요청, 요청 거절은 이름을 다르게 했다.public class FriendshipController { private final FriendshipSer..
·부트캠프/Dev
기능 구현스프링 시큐리티를 활용해서 jwt 인증 인가를 구현했다./api/login 으로 로그인 시도를 하면 JwtAuthenticationFilter에서 로그인 성공 시 jwt 토큰을 반환해준다.토큰은 리프레쉬가 가능하게 했다.액세스 토큰은 헤더로 넘겨주고, 리프레쉬 토큰은 쿠키에 저장 후 따로 DB로 관리해주었다.@Overrideprotected void successfulAuthentication(HttpServletRequest request, HttpServletResponse response, FilterChain chain, Authentication authResult) throws IOException, ServletException { log.info("로그인 성공 및 ..
·부트캠프/Dev
시작첫 스프링 팀 프로젝트가 시작됐다.기간은 9월2일부터 9월 6일까지인데 사실상 5일까지이다. 조가 네명이었는데 중간에 한 분이 나가시는 바람에 3명이 됐다. 첫 스프링 팀프로젝트를 세명이서 진행하다니...그래도 다행히 주말에 이런거 나올 것 같다고 예상하고 공부한 부분들이 얼추 나와서 수월하게 진행할 수 있을 것 같다.프로젝트팀원분의 의견을 받아 구글킵같은 느낌처럼 Sparta Study keep(SSK)라는 프로젝트를 진행하기로 했다.일단 나는 프로젝트에서 jwt토큰을 활용한 로그인, 로그아웃, 회원가입, 인증/인가 기능과 친구 기능을 담당하기로 했다. 빠르게 필요기능을 끝내고 추가 기능 구현을 할 예정이다.이번 프로젝트에서 팀장을 맡았다. 잘 마무리하고 싶다.
·트러블 슈팅
문제jwt를 활용해서 로그인 기능을 구현하면서 리프레쉬 토큰을 쿠키에 재발급을 해주는데 이 때, 이름이 중복된 토큰이 들어가있었다. 처음에는 프로그램 오류인줄 알았으나, 이상한 토큰을 읽어오는 문제가 발생해서 알았다.해결분명히 토큰을 덮어쓸때 이름도 똑같이 지정하고 setPath = "/" 로 지정하고 value도 널로하고 시간도 0으로 했었다. 의심가는 쿠키에 넣는 부분을 살펴보니 setPath를 안해주는 부분이 있었고 이 부분에서 처음 발급할 때 path가 /api 인 토큰이 쿠키에 들어가고 재발급 되는 토큰이 담긴 path는 / 이어서 두개가 들어갔던 것이다.setPath를 똑같이 지정해주어서 해결됐다. 앞으로 주의해야할 것 같다.
nameless1004
'분류 전체보기' 카테고리의 글 목록 (2 Page)