본문 바로가기

전체 글149

[인턴일지 #1] 첫 출근 입사 이후 2주가 넘은 시점에 작성하는 첫 출근 후기... #1. 출퇴근 집에서 판교까지 출퇴근 시간이 2시간을 넘어간다. 그래도 통근버스가 있어서 가는 길에 잠도 자고 좋다. 긴 출퇴근 시간을 즐겁게 감수할 만큼 인턴 생활에서 배워가는 점이 많다ㅎㅎ #2. 회사 생활 신사옥이라 그런지 회사 시설이 정말 쾌적하다. 아침밥도 매일 제공된다. 사내 식당도 메뉴 2가지에 정말 맛있고, 사내 카페도 있다... 호호 커피 머신과 팀별 간식 곳간(?)도 있다. #3. 업무 지금은 업무라는 단어가 부끄러울 만큼 성취보다 성장에 초점을 맞춰서 배우고 있다. 나는 Java Profiling을 이용해서 자사 커버리지 분석 도구 (COVER), 정적 분석 도구 (STATIC)의 코드를 분석하고 개선 방향을 제안하는 프로젝트.. 2023. 9. 19.
[Spring Boot & Github Actions] 비공개 json키 관리 문제 상황 Firebase 프로젝트와 Spring Boot 서버를 연결하기 위한 json 설정 파일을 외부에 노출하지 않고 Github Actions로 배포하는 방법이 필요 (일단 해당 json 파일은 gitignore 한 상태) 시도 1. json 파일의 내용을 Github Secrets에 저장해두고, application-secret.yml을 만들 듯 Github Actions yml 설정 파일에서 json 파일을 만들기 - name: Make FirebaseServiceAccountKey.json run: | touch ./src/main/resources/firebaseServiceAccountKey.json echo "${{ secrets.FIREBASE_SERVICE_ACCOUNT_KEY }}.. 2023. 8. 25.
[Wanted 프리온보딩] 컨테이너 기술, Docker의 개념과 사용법 1. Docker란 ? 1-1. Docker - 컨테이너 기반 가상화 도구 (Linux Containers - LXC 기반) - Application을 컨테이너라는 단위로 격리하고 이를 실행 및 배포하는 기술 - 다양한 OS에서 사용 가능하며, 컨테이너화된 App을 간편하게 빌드/배포/관리할 수 있는 다양한 기능 제공 - 빠른 App 개발, 효율적 배포/관리 가능 1-2. Container - 가상화 기술 중 하나 - Host OS 위에 여러개의 격리된 환경을 생성 - 각 컨테이너 안에서 Application을 실행함 1-3. 가상화 (Virtualization) - 하나의 물리적 컴퓨터 자원(cpu, memory, storage 등)을 가상적으로 분할하여 여러개의 가상 컴퓨터 환경을 만들어내는 기술 -.. 2023. 8. 1.
[BoJ] #1182 부분 수열의 합 / c++ https://www.acmicpc.net/problem/1182 1182번: 부분수열의 합 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net 부분수열의 합 2 초 256 MB 문제 N개의 정수로 이루어진 수열이 있을 때, 크기가 양수인 부분수열 중에서 그 수열의 원소를 다 더한 값이 S가 되는 경우의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 .. 2023. 7. 27.
[UNIS SW 창업 해커톤] 참가 후기 활동 기간 2023.07.19 - 2023.07.21 포지션 기획, 백엔드 개발 Tech Stacks Spring Boot 3, MySQL, AWS 이번에 교내 창업 동아리 UNIS에서 해커톤을 진행한다고 하여, 백엔드 개발 포지션으로 참여했다. 그동안 여러 프로젝트에 참여했지만, 해커톤은 처음이라 기대도 긴장도 많이 되었다. 첫 해커톤 후기를 남겨보고자 한다. # Day 1 공덕 서울창업허브에서 오프라인 OT가 진행되었다. 팀원들도 처음 만나고, 주제에 대한 개요를 함께 결정하는 시간을 가졌다. 우리 팀은 기획 1, 프론트 2, 백엔드 2로 인원을 구성했다. 기획자 분께서 '실패 기록 서비스'를 제안하셔서 해당 주제의 방향성을 함께 논의했다. 단기간에 빠르게 기획부터 개발까지 진행해야 하였기에, 나는 .. 2023. 7. 22.
@Configuration @Configuration 애플리케이션의 구성 정보를 담고 있는 설정 파일용 어노테이션 ex ) package hello.core; import hello.core.discount.DiscountPolicy; import hello.core.discount.FixDiscountPolicy; import hello.core.discount.RateDiscountPolicy; import hello.core.member.MemberService; import hello.core.member.MemberServiceImpl; import hello.core.member.MemoryMemberRepository; import hello.core.order.OrderService; import hello.core.. 2023. 6. 29.
[코테 한 알] 자료구조 / 투 포인터 1. 투 포인터란 ? 2개의 포인터를 이용하여 구간의 시작과 끝을 제한하는 방식 2. 투 포인터의 시간복잡도 포인터를 이동하는 계산이 전부이므로, O(n)의 시간복잡도를 가진다. 따라서 큰 수를 다루는 계산에 유리하게 사용된다. 3. 투 포인터 예제 [BOJ 2018] 수들의 합 5 어떠한 자연수 N은, 몇 개의 연속된 자연수의 합으로 나타낼 수 있다. 당신은 어떤 자연수 N(1 ≤ N ≤ 10,000,000)에 대해서, 이 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 알고 싶어한다. 이때, 사용하는 자연수는 N이하여야 한다. 예를 들어, 15를 나타내는 방법은 15, 7+8, 4+5+6, 1+2+3+4+5의 4가지가 있다. 반면에 10을 나타내는 방법은 10, 1+2+3+4의 2가지가 있다... 2023. 6. 28.
[코테 한 알] 시작 🍏 방학을 맞아 알고리즘 정리를 시작하려 한다. 기본적인 알고리즘부터 코테에 필요한 스킬까지 정리할 생각이다. 방학 내 완주를 목표로 화이팅! 참고 도서 | Do it 알고리즘 코딩 테스트 C++ 2023. 6. 28.
[캡스톤디자인프로젝트] 최종 발표와 수상 드디어 1년간의 졸업 프로젝트가 끝이 났다. 오랜 기간 서비스를 기획, 개발하니까 최종 발표때는 우리 서비스의 필요성 및 기술에 대한 충분한 이해와 확신이 있었고, 그 덕에 발표도 긴장없이 잘 마무리했다. 그리고 감사하게도 장려상을 수상할 수 있었다. 최종 발표를 비롯하여 이것저것 프로젝트 회고를 해보고자 한다. 우선 이번 프로젝트를 통해 처음으로 AI 기반 서비스를 개발해볼 수 있었다. 직접 개발한 파이썬 크롤러를 통해 이미지 데이터를 수집하고, 이를 전처리하여 Yolov5 모델을 학습시키는 과정을 함께하며 AI 모델의 구현 과정 전체를 하나하나 경험해봤다. 또한, Flask를 이용하여 AI 모델을 위한 모델 서버를 개발한 후, 이를 Tencent Cloud GPU 서버에 배포해보며 웹서버와 모델 서버.. 2023. 6. 23.