본문 바로가기

Programming175

[렛츠인턴] 네트워킹 파티 렛츠인턴에서 네트워킹 파티가 있었다. 유사한 진로 방향을 가진 분들부터 전혀 다른 방향을 가진 분들까지 다양한 인연들과 실컷 이야기할 수 있었다. 진로 방향과 상관없이 비슷한 고민들을 가지고 있기도 했고, 내가 몰랐던 새로운 분야의 이야기도 들을 수 있어서 정말 설레고 즐거웠다. 집순이 인간이지만 앞으로도 이런 기회에 보다 적극적으로 참여해봐야겠다는 생각을 했다. 나 스스로도 누군가에게 도움이 되는 인연이 될 수 있도록 노력하자! 앞으로도 렛츠인턴 화이팅💜 2024. 1. 2.
[고민 일지] Backend 설문 옵션에 확장성 더하기 서베이지는 설문자와 설문 참여자를 (a.k.a 패널) 연결해주고 수수료를 받는 중개 서비스이다.이 과정에서 설문이 특정 나이대, 성별을 대상으로 하는 경우, 자격이 되지 않는 패널의 참여를 막기 위하여 어플에서 해당 패널의 자격이 되는 설문만을 필터링하는 기능을 제공한다. 이번에 Spring boot를 이용한 서버를 도입하게 되면서, 몇백명의 패널에 대하여 효과적인 설문 옵션 관리 방법을 고민하게 되었다. 이번 글에서는 그 고민 과정을 기록해놓으려 한다. Enum을 활용하자!서베이지에서는 설문과 패널을 효과적으로 매칭하기 위하여 다양한 필터링 조건을 제공한다. 나이대, 성별 등 여러 필터링 조건에 대하여 기존에는 각 옵션의 값을 0부터 시작하는 인덱스 값으로 저장하였다. 예를 들면 10대면 0을, 20대.. 2024. 1. 1.
[인턴일지 #7] 인턴 끝! 12/22 퇴사 후 새해가 되어서야 작성하는 인턴 종료 일지! (첫 인턴 일지와 데자뷰..)드디어 4개월간의 인턴 생활이 마무리되었다. 전공을 다루는 직장생활은 처음이라 걱정도 많았지만, 어떤 부분에서든 성장해서 나가자는 목표로 임하니까 매일매일이 배워가는 즐거움으로 금방 지나가버렸다.  내가 진행했던 업무 내용은 아래와 같다. TopicTaskJava Profiling  JVM 및 JVMTI에 대한 이해   Java Profiler 3종 (pinpoint, scouter, visualvm) 환경 설정 및 사용   Scouter를 이용한 자사 테스팅 도구(cover, scouter) 프로파일링   JVM 클래스 정보 추출하는 커스텀 Java Agent 개발   Java Remote Debug   Oper.. 2024. 1. 1.
[Spring Boot - Firebase] 연동하기 준비물 : Firebase 프로젝트 기존 Firestore Database에서 스프링 서버로 데이터를 불러오기 위해 연동하는 과정을 진행해 볼 것이다. Firebase 프로젝트는 이미 생성했다고 가정하고 진행하겠다. 1. Firebase 비공개 키 다운로드 Firebase 프로젝트 대시보드의 프로젝트 개요 / 프로젝트 설정 / 서비스 계정으로 이동한다. SDK 언어를 Java로 설정한 후, 새 비공개 키 생성을 클릭한다. 스프링 프로젝트의 src / main / resources에 다운받아진 json 비공개 키를 복붙한다. 파일명은 각자 지정하면 되는데, 나는 firebaseServiceAccountKey.json으로 저장했다. 2. FirebaseConfig 설정 스프링부트 프로젝트에 FirebaseC.. 2023. 10. 28.
[밥약 | 백엔드] 서비스 출시 드디어 밥약이 출시되었다!! https://www.babyakmate.com/ 밥약 www.babyakmate.com 시험기간에 출시된지라 아직 밥약이 활발히 올라오지는 않았지만, 벌써 누적 가입자수가 130여명이다. (로그인 및 회원가입 API에 문제가 없다..! 휴ㅋㅋㅋㅋ) 출시 전 이대학보에서 인터뷰를 하고 기사를 발행해주셨는데, 후속 기사를 위한 인터뷰 요청도 들어와서 11월 즈음 진행될 것 같다. 신기하다. 실제로 밥약 글이 올라온 것을 보니 서비스 출시가 실감나는 것 같다. 시험 기간 이후 많은 이용자 유입에 잘 대처해서 지속가능한 서비스로 밥약을 잘 운영해보고 싶다. 2023. 10. 28.
[인턴일지 #6] Java GC, Heap Dump https://dramatic-lift-c67.notion.site/Java-GC-Memory-Dump-df1b555892774033809377b0a669c77b?pvs=4 Java GC와 Memory Dump | Built with NotionRefdramatic-lift-c67.notion.site 2023. 10. 28.
[인턴일지 #5] Java Profiling, Profilers 1. Java Profiler등장 배경프로그램 규모가 커지거나 복잡해지면 모든 JVM Internal Components가 효율적인지 모니터링 어려움특징Memory Usage, Garbage Collection, CPU Utilization 등을 분석JVMTI 이용주로 Agent - Server - UI 구조 2. Java Profiling Tools APM (Application Performance Management)  PinpointScouterVisualVm형태Web ClientStandalone ClientStandalone ClientPlugins저장소HBasecompressed files AgentJava Agent• Host Agent (OS Agent)- CPU, Memory, Disk.. 2023. 10. 28.
[Spring Boot] 주기적 코드 실행 서베이지에서는 활성 패널의 수에 따라 수집 가능한 최대 응답수가 달라지게 된다. 이에 따라 서베이지는 10일 단위로 활성 패널의 현황을 자동 업데이트하는 기능을 도입하기로 결정했다. 오늘은 Spring Boot의 @Scheduled을 이용하여 10일마다 실행되는 scheduled task를 만들어 볼 것이다. 1. @EnableScheduling 스프링의 scheduled task 실행을 가능하게 하는 어노테이션이며, 메인 Application에 붙여준다. @SpringBootApplication @EnableScheduling public class SurveasyApplication { public static void main(String[] args) { SpringApplication.run(S.. 2023. 10. 23.
[인턴일지 #4] JVM, JVMTI [참고] Chapter 2. The Structure of the Java Virtual Machine Chapter 2. The Structure of the Java Virtual MachineConditional branch: ifeq, ifne, iflt, ifle, ifgt, ifge, ifnull, ifnonnull, if_icmpeq, if_icmpne, if_icmplt, if_icmple, if_icmpgt if_icmpge, if_acmpeq, if_acmpne.docs.oracle.com 1. Java Compile & Run1-1. Java Compile & Run 과정.java 파일 생성Java Compiler (javac)로 .java 파일 컴파일   .java → .classJ.. 2023. 10. 4.