분류 전체보기

11.20 ~ 5.21 드디어 6개월 부트캠프 과정이 모두 끝났다. 6개월은 생각보다 짧다... 바쁘게 살다 보니 시간이 정말 금방 갔다 ㅠㅠ 최종 프로젝트 하느라 바빠서 주간 회고를 다 작성하지도 못했다....그래도 최종 회고는 작성해야 될 것 같아서 이렇게 글을 남긴다 !최종 회고는 PMI 방식으로 작성했다.Plus : 좋았던 점같은 또래 친구들과 협업 & 친목멘토님이 말씀하시기를 개발 분야는 생각보다 좁기 때문에 어디서 만날지 모르니 많이 친해지고 연락도 계속 주고 받으라고 하셨다. 이렇게 같은 분야의, 심지어 같은 또래의 사람들을 만나는 건 부트캠프가 아니면 어려운 일인 것 같다.이번 기회에 동기들과 많이 친해졌고, 같은 목표를 가지고 으싸으쌰 하는 소중한 경험을 할 수 있었다.서로 개발 이야기도..
· FE
vue vite로 구현하고 배포했는데 이미지 파일이 쿠버네티스 환경에 올라가지 않는 에러 발생증상src 폴더에 파일은 있다. 이 파일을 코드에서 사용 중이다. 근데 배포 환경에 올리면 이미지가 배포 환경에 업로드되지 않는다. 아래 사진처럼 이미지 로드되지 않음 ㅠㅠ 쿠버네티스 파드에서 ls 명령어로 확인해봐도 나오지 않는다. 원인Vite는 기본적으로 JS/TS/CSS에서 참조된 static 파일만 빌드 결과물에 포함한다.그러나 아래처럼 JS 코드가 아닌 :style="..." 내부에서 문자열 조합으로 URL을 만들면, Vite는 이 파일을 사용한다고 판단하지 못하고 무시해버린다. 즉, 이 default_profile.png는 "정적 리소스로 인식되지 않음". 해결 방법public 폴더에 ..
Logback이란?스프링 부트에서 기본으로 사용하는 로그 프레임워크 SLF4J : 로그 인터페이스 (API)Logback : 로그 구현체 (실제 동작)Log4j2 : 다른 로그 구현체 스프링 부트는 별도의 설정이 없으면 SLF4J + Logback 조합으로 로그를 구성스프링 부트에서 Logback 사용logback-spring.xml 파일 추가logback 설정 파일을 추가해준다.  facility : 로그가 어디에서 발생했는지suffixPattern : 로그를 어떻게 남길 건지 패턴 지정 propertySYSLOG_HOST : 로그 서버 IP 주소SYSLOG_PORT : 포트 번호 ${SYSLOG_HOST} ${SYSLOG_PORT} ..
AOP란?AOP는 관점 지향 프로그래밍이라고 불리며, 핵심 로직과는 별개로 반복되는 공통 관심사를 분리해서 관리할 수 있게 해주는 프로그래밍 패러다임 대표적인 공통 관심사 예시 : 로깅, 트랜잭션 처리, 보안 체크, 성능 측정  ❓ 왜 AOP를 쓸까?기존 코드에 이런 공통 기능들을 일일이 추가하면 코드가 지저분해지고, 유지보수도 어려워진다.AOP를 쓰면 이런 기능들을 한 곳에서 정의하고, 필요한 곳에 자동으로 적용할 수 있어서 코드가 더 깔끔하고 재사용성도 높아진다.=> 여러 클래스에 공통적으로 작업을 적용할 때 사용한다.   ✅ 핵심 개념 간단 정리Aspect: 공통 관심사를 모듈화한 것 (예: 로깅 기능)Join Point: Aspect를 적용할 수 있는 지점 (예: 메소드 호출 시점)Advice: ..
4.7 ~ 4.11 벌써 20주차... 이거 맞아요?이번 주에 진행한 내용이번 주에는 수요일에 중간 발표가 있었다. 원래는 없었는데 생긴 거라고..ㅠ ㅠ 중간 발표는 내가 맡아서 하기로 했다. 발표하는 사람이 발표 PPT와 대본을 작성하는 게 나을 것 같아서팀원들한테 프론트엔드 구현을 맡겨두고 월요일에는 오전까지 프론트 구현하고, 오후에는 발표 자료를 만들고 대본을 작성했다.화요일에 발표 연습을 오전, 오후 두 번 진행했다. 오전 발표 연습을 진행하고 강사님께 중간 발표 피드백을 받고, 피드백 기반으로 수정한 다음 오후에 연습을 빠르게 진행했다.우리는 마지막 순서였는데, 오전에 첫 연습이라 좀 길게 진행하다보니 우리 팀 발표할 시간이 없어서 ㅠㅠ 점심 먹고 오후에 첫 연습을 진행했다. 그래서 오후 연습..
3.31 ~ 4.4이번 주에 진행한 내용 월요일에는 요구사항 정의서를 작성하고, 두 번째 멘토링을 진행헀다.첫 번째 멘토링 때 아이스 브레이킹 겸 2시간 동안 멘토님과 수다 타임을 가졌기 때문에...이번 멘토링에서는 우리 프로젝트의 기획서와 요구사항 정의서, 그리고 아직 미완성된 화면 설계서를 보여드리고 피드백을 받았다. 현업과 비즈니스 위주로 멘토링을 진행해주셨고, 기능들을 추천해주고 구현 시 고려사항에 대해서 얘기해주셨다.AI 기능이 들어가면 좋을 것 같다는 멘토님 의견을 듣고 우리는 Q&A 게시판에 AI 답변 기능을 추가하기로 결정했다 !채팅방 관련해서도 많은 피드백을 주셨는데, 멘토님이 말씀하신 걸 듣고 나니 생각보다 채팅 기능이 어려울 것 같아서 걱정이다 ㅜ 화요일부터는 일주일 동안 피그마 화..
로그란?로그는 프로그램이 어떤 동작을 했는지 기록해두는 것에러가 났을 때 원인을 추적하거나, 정상적으로 동작했는지 확인하는 데 꼭 필요하다. 리눅스 시스템에서는 다음과 같은 명령어로 로그를 확인할 수 있다.systemctl status nginx # 서비스 상태 확인cat /var/log/syslog # 시스템 로그 확인Spring에서의 Logging스프링에서는 Logger를 사용해서 다양한 로그 레벨로 메시지를 기록할 수 있다.log.info("정상"); // 정상일 때log.error("에러"); // 에러일 때// 동작 상황을 모두 출력log.trace("trace : 동작 상황을 모두 출력(메소드 실행, 종료, 반복문 실행 등)");// 동작 상황을 모두 출력log...
CQRS (Command Query Responsibility Segregation)명령(Command)과 조회(Query)를 명확히 분리하는 아키텍처 패턴 Command데이터를 생성(Create), 수정(Update), 삭제(Delete) 하는 작업 Query데이터를 조회(Select)하는 작업   ✅ 장점부하분산조회 요청이 많을 경우, 쿼리 서비스만 스케일업/스케일아웃하면 됨커맨드와 쿼리를 같이 둔 경우, 불필요하게 커맨드 로직도 함께 리소스를 차지장애 분리쿼리에 장애가 발생했을 때도 커맨드는 계속 서비스 가능 CQRS 적용 방법단일 프로젝트 내에서 분리BoardCommandService: 게시글 등록, 수정, 삭제BoardQueryService: 게시글 목록 및 상세 조회 프로젝트를 완전히 분리bo..
3.24 ~ 3.28 드디어 최종 프로젝트 팀이 정해지고 최종 프로젝트를 시작하게 되었따 !! 처음 보는 사람들도 많을 줄 알았는데 맨날 보고 같이 밥도 먹던  친구들과 같은 팀이 됐다. 주변 팀들 구성을 보니까 최대한 친한 사람들과 같이 팀 구성을 하게 해주려고 노력하신 것 같다. 사실 나는 우리 기수에서 얘기를 한 번도 안 해본 분들도 있어서 처음 보는 사람들이 많았으면 좋겠다고 생각했는데.. 이 부분은 아쉬웠지만 그래도 지금 팀 구성도 좋아서 지금 팀원들과 열심히 할 예정이다.이번 주에 진행한 내용이번 주 월요일, 화요일에는 CICD 프로젝트로 진행했다. 저번 주 금요일에 빌드 + 배포에 필요한 yml 파일을 미리 작성해두고 진행했다.월요일에는 팀원들과 회의를 진행하면서 빌드를 어떻게 할지, 배포 ..
3.17 ~ 3.21 강사님께서 알려주시는 이론 수업이 드디어 끝났다...!짧은 기간 안에 너무 많은 정보가 들어와서 정리하기도 힘들고 모든 내용들을 다 습득하기도 어려웠지만그래도 나름 잘 따라갔던 것 같다.이제 최종 프로젝트만 남았다... 배운 내용들을 가득 담아  성공적으로 마무리하고 싶다 !!  이번 주에 배운 내용월요일에는 쿠버네티스와 같은 마이크로서비스 아키텍처에서 서비스 간 통신을 관리하고 제어를 쉽게 해줄 수 있는 istio에 대해서 배우고, MSA 데모 프로젝트를 가지고 실습을 진행하면서 어떻게 istio로 관리하는지를 배웠다.그리고 3계층 아키텍처 배포 실습을 진행했다. 회원 기능의 마이크로서비스를 개발해서 디플로이먼트로 배포하고, DB 서버를 올리고, ConfigMap 등을 작성하고 G..
셰욘
'분류 전체보기' 카테고리의 글 목록