[level 0] 이어 붙인 수 - 181928
·
코딩테스트(Algorithm)/프로그래머스
문제 링크 사용 언어 : Javaclass Solution { public int solution(int[] num_list) { int answer = 0; String holl = ""; String jjak = ""; for(int i=0; i
Docker 기초
·
개발 툴/Docker
DockerDocker는 애플리케이션 패키징 할수 있는 도구. ( Application, System Tools, Dependencies ) → 호환성 Dev (node.js) → 소스코드 ← Server (node.js) 을 사용하면, 내 PC에서는 잘되지만 서버에서는 안되는 경우가 있다.Node.js 버전이 맞지 않아서 일수도 있다. → 도커 컨테이너를 통해서 해결!!Docker 컨테이너를 사용하면, Runtime에 필요한 모든 것들을 가지고 있어서 실행이 잘된다.❓ VM vs Container 간단히 말하면, VM은 운영체제를 포함하고 있어서 무겁고, 대신 컨테이너는 정말 가볍다!!그중에서도 Docker 컨테이너를 가장 많이 사용하고 있다.⚙ 동작 순서컨테이너를 만들기위한 3가지 요소DockerFi..
TIL 93 - [ Spring 최종 프로젝트 ( D-Day ) - 최종 발표회 ]
·
[내일배움캠프-Sparta]/Spring 6기
더보기💥 최종 발표 발표는 성공적으로 잘 이루어졌다. 확실히 실용적인 프로젝트였다 보니까 따로 질문이 없어서 오히려 더 당황 스러웠기도 했다. 발표 이후 커리어톤 관련해서 강의가 시작되었는데, 추후에 취업 관련되서 적극적으로 활용해보아야 겠다는 생각이 들었다.💫 질의 응답 ( 부스 )부스 운영 시간에는 기존에 함께달려온 튜터님들과 외부인과 외부 트랙에서 오신 튜터님들이 20분마다 돌아다니면서 프로젝트에 대해서 질문을 던지셨다. 나한테 질문 한것도 있었는데 중간에 Zep이 화면이 나오지않고 멈춰버려서 당황하였다. 게다가 별로 답변을 시원치 않게 한것도 있는 것 같아서 실제 면접때 에서는 더 대비를 해야겠다는 생각이 들었다. 기억나는대로 질의 응답 포스팅 해보겠다. 1️⃣ 추천 테이블 동시성 문제현재..
TIL 92 - [ Spring 최종 프로젝트 ( Day 28 ) - 문제 이미지 수정 로직, 이미지 UI 추가 ]
·
[내일배움캠프-Sparta]/Spring 6기
⚙ 문제 이미지 수정 로직🎏 이제 문제 이미지가 추가 되었기때문에 reponse 값에 imageUrl 값을 추가하였다. 이미 배포가 되어 먼저 사전에 등록된 문제들이 있다. 그래서 부득이하게 이미지만 추가하는 Put 컨트롤러와 서비스 로직을 추가하였다.@PutMapping("/image/{problemId}")@Operation(summary = "문제 이미지 수정", description = "문제 이미지 수정합니다.")@PreAuthorize("hasRole('ADMIN')")@ApiResponse(responseCode = "200", description = "문제 수정 성공")public ResponseEntity updateProblemImage( @PathVariable Long pr..
TIL 91 - [ Spring 최종 프로젝트 ( Day 27 ) - 문서화 작업 ]
·
[내일배움캠프-Sparta]/Spring 6기
📕 기술적 의사 결정프로젝트를 하면서 왜 이것을 사용하였는지를 문서화 하는 시간을 가져보았다.1️⃣ QueryDSL 이용1. 문제 조회 성능의 한계기존 문제 리스트 API는 단순하게 JPA 메서드 기반 정적 쿼리를 통해 구현되어 있었으며, 아래와 같은 문제점이 있었다복잡한 조건 조합이 어려움category + keyword + difficulty 등 다양한 검색 조건을 유연하게 처리하기 어렵고, 조건이 많아질수록 코드 복잡도가 증가성능 저하연관 테이블(Category 등)과 조인이 필요하지만, JPA 기본 전략에서는 불필요한 N+1 쿼리나 비효율적인 SQL이 발생확장성과 가독성 부족조건이 추가될 때마다 if-else가 중첩되거나 메서드 수가 증가하면서, 유지보수가 어려워짐2. 어떤 대안들을 두고 고민했..
TIL 90 - [ Spring 최종 프로젝트 ( Day 26 ) - 5분 브리핑 [2회차], ReadMe 작성 ]
·
[내일배움캠프-Sparta]/Spring 6기
📣 5분 브리핑 [ 2회차 ] 5분 브리핑 [ 2회차 ] | Notion1조 ezcode 코딩테스트 → 문제/테스트케이스 역할 담당workable-hacksaw-44c.notion.site완성된 발표 자료 본으로 녹화를 해서 제출 하였다. 1회차때에 고도화 다룰 기능을 다뤄야 했었는데 생각보다 짧은 프로젝트 기간에 많은 기능을 구현해보는 것이 쉽지 않았다. 발표 때 에는 주로 그 기간동안 리팩토링한 과정과 고도화 기능에 대해서 주로 브리핑하고 테스트 코드는 언급 정도만 하였다. 📃 ReadMe 작성README.md는 개발자가 만든 프로젝트에 대해 다른 사람들에게 쉽게 소개하고 이해할 수 있도록 도와주는 설명서 같은 역할을 합니다. 주로 GitHub 같은 버전 관리 플랫폼에 업로드된 프로젝트에서 사..
TIL 89 - [ Spring 최종 프로젝트 ( Day 25 ) - 문제 테스트 코드 작성 ]
·
[내일배움캠프-Sparta]/Spring 6기
테스트 코드는 단위 테스트로 작성하였다.애플리케이션 Service와 도메인 Service 두개로 나눠서 테스트 코드를 작성하였다. 테스트 코드 ( 베이직 )📣 테스트는 왜 필요할까?S/W 개발 과정에서 테스트는 필수이다. 새로운 기능을 추가하거나 기존 코드를 수정하는 과정에서 예기치 못한 오류(버그)가 발생할 수 있습니다. 테스트 코드는 이런dimenshun.tistory.com 테스트 코드 ( 이론 )📣 테스트 코드 [ 이론 ]예시 1. 댓글 삭제를 테스트 하려할때 회원가입 , 로그인 api 거친후 댓글 등록후 삭제 까지 많은 API를 거쳐야 하기 때문에 회귀 테스트 대상이 많다.1️⃣ 왜 테스트를 해dimenshun.tistory.com 테스트 코드 (단위 테스트) ( 스탠다드 )❗ 학습..
TIL 88 - [ Spring 최종 프로젝트 ( Day 24 ) - 파일 크기 제한, 문제 이미지 수정/삭제 DB 잔존 현상 리팩토링 ]
·
[내일배움캠프-Sparta]/Spring 6기
최종 프로젝트도 이제 슬슬 마무리가 되어 가는 것 같다. 오늘은 팀원들과 의논하면서, 마무리 하는 시간을 가지면서 브로셔, RDS 데이터 넣기, readMe, 테케 테스트, PPT 및 대본, 발표 등 역할을 나누고, 각자 수행해 나가는 작업을하고, 부족한 부분이 있으면 코드 리팩토링 하는 시간을 가졌다.1️⃣ 파일 크기 제한이번에 S3 기능에 파일 크기 제한도 넣어주면 좋지 않을까라는 생각에 넣어 보았다.확인을 해보니까 PostMan에서 자체적으로 크기를 제한 해준다. ( 5MB )spring.servlet.multipart.max-file-size=5MBspring.servlet.multipart.max-request-size=5MBProperties에 Spring으로 막아 줄수 있지만, 서버내에서 바..