전체 글

전체 글

    LG 유플러스 아이들나라 백엔드 직무 하계인턴십 후기 (LG 인적성, 코딩테스트,면접 후기 포함)

    - Disclaimer : 인턴십 과제 내용, 코드(대외비), 회사의 자세한 상황이나 개발 외의 다른 직무(이건 저도 잘 모름) 등에 대한 부분은 언급하지 않는 점 참고하고 읽어주세요! 나의 첫 회고글! 7월 이후로 글 업데이트가 없던 것도 이 때문이었다. 결론부터 말하자면, 아이들나라에 개발 직무로 지원하시는 분들이 이 글을 본다면 고민없이 지원해보라고 권하고 싶다. 나도 처음 지원할 때는 정보가 많이 없어서(아니 그냥 없어요) 준비하는데 어려움이 좀 있었기 때문에 공유 차원에서 후기를 작성해보려고 한다. 1. 인턴십 지원~ 합격까지! 아이들나라 인턴십은 유플러스 인턴 채용과 같이 이루어졌다. 우선 채용 공고부터 너무 눈에 띄었다. 대기업인데 스타트업처럼 일한다라.. 게다가 내가 몇년 동안 떠들고 다녔..

    백준 17144) 미세먼지 안녕!_Python

    문제 분석 https://www.acmicpc.net/problem/17144 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사 www.acmicpc.net 모든 조건을 다 확인하면서 구현해내는게 중요한 Simulation 문제! 코드 # 삼성기출 import sys input = sys.stdin.readline R, C, T = map(int, input().split()) # R행 C열 board = [list(map(int, input().split())) for _ in range(R)] cleaner = [] for i in r..

    백준 14501) 퇴사_ Python

    문제 https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 코드 import sys input = sys.stdin.readline N = int(input()) T = [0]*(N+1) P = [0]*(N+1) for i in range(N): Ti, Pi = map(int, input().split()) T[i] = Ti P[i] = Pi DP = [0]*(N+1) for i in range(N-1, -1, -1): if(N-i < T[i]): DP[i] = DP[i+1] # 주어진 시간안에 상담할 수 없음, 이전 값과 동일 else: DP[i] = max(DP[i+1], P[i]+..

    Spring Boot& Mongo DB & AWS EC2에서의 Timezone Sync에 대한 고찰

    채팅 어플리케이션 개발 중에 채팅을 보낸 시간이 제대로 저장이 안되는 버그가 발생하였고, 문제를 해결한 과정을 정리해 보았다. 사용 스택 Server : Spring boot & AWS EC2 Ubuntu 인스턴스 DB : MongoDB 제가 해결한 방식만이 옳은 건 아니니 참고만 해주시길 바랍니다! 문제 1: LocalDateTime을 MongoDB가 자동으로 UTC로 저장해버리는 문제 채팅을 저장하려고 할때 LocalDateTime.now() 메소드를 통해 MongoDB에 LocalDateTime타입 그대로 저장을 했다. 여기서 Java 어플리케이션 자체에선 KST로 잘 출력되던게 DB에 BSON으로 Converting되는 과정에서 UTC로 변환되어서 저장이 되어버렸다. LocalDateTime 객체..

    백준 12865) 평범한 가방 - Python

    https://www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net 1. 문제 2. 문제 풀이 방식 기본적인 0/1 Knapsack 문제이다. 우선 무게를 고려해 물건을 담는 경우의 수는 두가지가 있다. 배낭 무게보다 물건이 무거워서 물건을 못담는 경우 물건을 담을 수 있는 경우 여기서 가치를 고려했을 때 두가지 경우가 또 갈라진다. 이 물건을 포함했을때의 가치 이 물건을 포함하지 않았을 때의 가치..

    Spring Webflux/Netty/MongoDB로 채팅 서버 구현

    📌 Goal: Spring Webflux와 MongoDB를 활용해 양방향으로 소통할 수 있는 채팅 서버를 구현한다 1. 환경설정 MongoDB 외부에서도 DB에 접근할 수 있도록 cloud cluster를 하나 구성하고, Database와 collection을 생성한다. RDBMS에서의 Schema와 Table이라고 생각하면 된다. MongoDB에서 connection string을 제공하므로 복사해두고, 추후 yml 파일 설정 시에 사용한다. mongodb+srv://:@/?retryWrites=true&w=majority Spring Boot Reactive-web과 MongoDB를 사용할 수 있도록 Gradle을 추가해주었다. Reactive web에서는 default 서버로 netty를 사용한다...

    프로그래머스 Lv4- 징검다리

    https://programmers.co.kr/learn/courses/30/lessons/43236 코딩테스트 연습 - 징검다리 출발지점부터 distance만큼 떨어진 곳에 도착지점이 있습니다. 그리고 그사이에는 바위들이 놓여있습니다. 바위 중 몇 개를 제거하려고 합니다. 예를 들어, 도착지점이 25만큼 떨어져 있고, 바위가 programmers.co.kr 1) 문제 분석 출발지점~ 도착지점 까지의 거리가 distance만큼 떨어져 있으며, 그 사이에 바위들이 놓여있다. 이 바위들이 놓여져 있는 지점을 rocks라는 배열에 저장한다. 그중 바위를 n개 만큼 제거하는데, 각 경우에서 각 지점 사이 거리의(출발, 끝지점 포함) 최솟값이 가장 큰 값을 return하도록 한다. 2) 코드 def solutio..

    Spring Boot에서 구글 소셜 로그인 REST 방식으로 구현하기

    🌟Goal : Spring boot에서 구글 소셜 로그인의 백엔드 처리 프로세스를 REST API 방식으로 구현한다. 1. 구글 OAuth API 프로젝트 환경 구성 ⬇️ 구글 API를 사용하기 위해서는 우선 하단의 사이트에서 일련의 구성및 허가 과정을 거쳐야 한다. https://console.cloud.google.com/apis/dashboard Google Cloud Platform 하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을 사용하려면 로그인하세요. accounts.google.com 1) 우선 사용자에게 보여질 Oauth 동의 화면을 구성한다. 2) 구글의 어떤 사용자 데이터까지 접근할 것인지 범위를 지정한다. 3) 테스트 사용자 추가는 우선 생략하고, ..