분류 전체보기

    Spring protobuf 부분 로딩 오류 해결(GCP Storage Signed Url)

    서버에서 클라이언트로 사진, 음원, 영상을 보내야하는 작업이 있었다. 영상을 서버에 저장해서 클라이언트로 보내는 것은 서버에 큰 부하가 있기 때문에 GCP Storage에 영상을 저장하고 해당 링크를 클라이언트로 보내주기로 했다. Storage를 사용하면 영구히 변하지 않는 PublicUrl을 제공하는 방법과 만료 시간을 정할 수 있는 SignedUrl을 제공하는 방법이 있다. PublicUrl이 주어지면 이를 클라이언트 단에서 탈취해 부적절한 접근을 할 수 있으므로 SignedUrl을 사용하기로 했다. 송신하는 응답 패킷에는 SignedUrl을 사용하는 필드가 3개 있었는데, SignedUrl로 변경하자마자 클라이언트단에서 데이터 중 일부를 받지 못하는 상황이 발생했다. 패킷이라면 일부가 전송이 실패하..

    SpringBoot JUnit5 테스트 및 어노테이션

    SpringBoot의 테스트 종류 @SpringBootTest 실제 어플리케이션을 자신의 로컬 위로 올려서 포트 주소가 Listening 되어지고, DB와 커넥션이 붙어지는 상태로 진행되는 라이브 테스트 방법 Bean 범위 : 주입된 Bean 전체 다른 테스트에 비해 무거운 테스트 @WebMvcTest Controller(API) Layer만을 테스트하기 적합한 테스트 어노테이션으로, 전체 어플리케이션을 실행하는 것이 아닌 Controller만을 로드하여 테스트를 진행할 수 있는 테스트 방법 Bean 범위 : MVC관련 Bean(Controller, Service) @DataJpaTest Jpa DB I/O 테스트 Bean 범위 : JPA 관련 Bean(EntityManager) @RestClientTe..

    Protobuf(Protocol Buffers)와 RPC

    들어가면서 게임에서는 문자열을 모두 원본 형태로 보내는 JSON 방식이 아닌 더욱 적은 대역폭으로 전송을 하는 Protobuf를 사용하기도 한다. 이를 실무에서 사용하기 전에 공부해보고자 Protobuf와 RPC에 대한 글을 정리하였다. RPC 통신 RPC 통신이란 Remote Procedure Call(원격 프로시저 호출)의 준말로, 별도의 원격제어 코드 없이 다른 주소 공간에서 함수/프로시저를 실행하도록 하는 프로세스 간 통신 기술(어디든 동일 호출) 함수 input에 따른 output의 발생 return값을 필요로 하며, 간단한 계산 및 수치 등을 도출할 때 사용 프로시저 output 값에 집중보단, 명령 단위 수행절차에 집중 return은 없을 수도 있고, 서버단에서 함수보다 큰 실행, 프로세싱 ..

    GraalVM 소개

    GraalVM이란 GraalVM은 Java 코드를 작성하고 실행할 수 있는 도구 - 더 빠르고 유지하기 쉬운 컴파일러 작성 ex)트위터 : Scala 코드의 성능 향상 - JVM에서 실행되는 언어의 성능 향상 - 애플리케이션 시작 시간 단축 - Java 에코 시스템에 다국어 지원 통합 구성요소 - 고성능 최적화 Just-In-Time 컴파일러 : JVM 기반 어플리케이션을 기본적으로 실행 가능한 바이너리로 컴파일하는데 사용 - 네이티브 실행 파일을 빌드하기 위한 Ahead-of-Time 컴파일러 - 다국어 지원 : 프로그래밍 언어 인터프리터를 제공, 이를 이용해 GraalVM을 확장하여 Java 에코 시스템에 언어 추가 Just-In-Time(JIT) 컴파일러란 - 프로그램을 실제 실행하는 시점에 기계어..

    2022 넷마블컴퍼니 신입사원 공개 채용 최종 합격 후기(에프앤씨 서버)

    [서류 발표 및 코딩테스트] 2022. 10. 19. 코딩 테스트 및 인적성 검사 안내 17일까지 서류 접수였는데 생각보다는 빠르게 코딩테스트에 대한 메일이 도착했다. 수많은 지원자들이 접수하였을텐데 떨어진 사람을 못 본걸 보면 아마 서류에서 큰 이유가 없다면 다음 전형으로 진행하는 듯 싶었다. 서류 과정이 코딩 테스트를 포함하고 있어서 그런듯 싶기도 했다. 2022. 10. 22. 코딩테스트 코딩테스트는 2시간동안 4문항이 진행됐고, 넷마블 게임내의 요소들을 활용한 문제들이 나왔다. 진행하기 전에 30분전부터 신분증과 웹캠을 통한 주변 검사를 진행했고, 기억이 잘 나지 않는데 프로그래머스로 진행했던거 같다. 문제는 답을 제출해도 정답인지 확인할 수 없었고, 그렇게 4문제 모두 테스트케이스가 정답인 것을..

    #3 [2020.04-2022] 대학 회고록2

    1. 공군 정보보호병 전역 [2020.04.06. ~ 2022.01.05.] 공군에 입대하여 21개월간의 군생활을 정보보호병으로 마쳤습니다. 특기학교에서 리눅스 명령어, html, db..? 등을 배웠는데 군생활하는 도중에는 크게 쓰이지 않았고, 방화벽을 만지는 일이나 상황대응하는 것이 일의 대부분이였습니다. 복무를 하면서 후에도 도움이 된 것은 이메일 작성 예절과 방화벽을 만졌던 경험(aws를 할 때 도움)이고, 공군 자체가 여유가 많다보니 공부를 많이 할 수 있어서 좋았던 것 같습니다. ▼ 관련글 더보기 공군 정보보호병 면접 질문 및 후기 면접 질문에 앞서 [2020.02.06] 공군 정보보호병 면접에 다녀왔습니다. 면접장소는 계룡대 제1정문이였는데 택시가 빙빙돌아서 제2정문에 내려줘서(^^;) 군인..

    [22.12.06] Daily 회고록 (SSG 최종합격, 넷마블 1차면접 합격, 리눅스 시험 정리)

    [구직 활동] SSG Tech Rookie : 첫번째 인턴십 최종합격 SSG 최종합격 통보를 받았다. 6일 오후에 알려준다고 하더니 오후 12시 조금 넘자마자 알려주었다. 필요한 서류들을 제출하였고, 12월 21일부터 인턴활동을 시작한다. 최종면접이 순조롭게 진행됐어서 기대하고 있었고, 노력한만큼 좋은 결과를 맞이할 수 있었다. 사옥이 강남에 있고, 인턴생활이기 때문에 서울에서 집을 구하기 애매해 인천에서 통학을 할 것 같아 걱정이다. 넷마블 에프앤시 1차 면접 합격 SSG 최종합격을 받고나서 연이어 넷마블 1차 면접 합격소식도 들려왔다. SSG는 인턴십이였던 반면 넷마블은 정규직이고, 최종 결과는 SSG 입과 바로 직전쯤에 나올 것 같다. [개인공부] 리눅스 기말고사 공부 정리 리눅스 중간고사 mumo..

    2023 SSG.COM Tech Rookie : 첫번째 인턴십 최종 합격 후기(Backend Engineer)

    [서류 발표] 2022. 10. 14. (1차 연기) -> 2022. 10. 20. (2차 연기) -> 2022. 10. 25. (3차 연기) -> 2022. 10. 31. (발표) 서류를 접수하고 발표하기 까지 3번의 발표 연기가 있었다. 담당자분께서는 내부 서류 공정성 이슈때문이라고 알려주셨으며, 서류 접수를 10월 6일까지 했으니 발표까지 4주 정도 걸렸어서 더 길고 고통스러웠던 기간이지 않았나 싶다. 다행히 기다렸던 만큼 좋은 결과를 받을 수 있었고, 다음 프로세스인 코딩 테스트를 준비할 수 있었다. [코딩 테스트 및 인적성 검사] 2022. 10. 31. ~ 2022. 11. 04(코딩테스트 진행 및 취소) -> 2022. 11. 07. ~ 2022. 11. 08. (코딩테스트 재진행, 문제 다..