분류 전체보기 183

AWS 클라우드란?

개발자라면 AWS, 클라우드 이 두 단어를 못 들어봤을리는 없을 겁니다. 하지만 저를 포함해서 단어만 알고 막상 활용을 잘 못한다거나 지식이 부족한 경우도 많이 있는 것 같아 저도 기초부터 차근차근 공부해나가면서 관련 지식을 블로그에 기록하려 합니다. 먼저 클라우드라는 게 뭔지 한 번 살펴보죠. 클라우드 이전의 방식에서 인프라를 구축한다고 하면 서버 장비를 직접 사와서 서버를 구축하는 것이었습니다. 데이터 센터라는 시설을 빌리거나 직접 데이터 센터를 운영할 경우 전력, 냉각, 유지보수 등 모든 사항들에 대해서 직접 관리했어야 했죠. 뿐만 아니라, 24시간 동안 시설의 동작을 감시할 인력도 고용을 해야하고 증설을 하고 싶으면 필요한 만큼 또 장비를 구매해서 직접 설치해야하죠. 최악의 경우, 지진, 정전, ..

클라우드 2024.05.02

우리 조직의 개발 문화는 어느 정도일까? - DORA metric

프론트엔드 개발을 위주로 하는 입장에서 DevOps는 사실 단어는 너무나도 많이 들리지만 막상 아는 건 하나도 없는 가깝고도 먼 단어입니다. 최근 팀에서 DevOps 관련된 주제를 가지고 토론을 빙자한 수다를 좀 떨었는데 아주 흥미로운 내용이었습니다. 팀의 개발 문화를 측정하는 지표에 대한 이야기였죠. DORA란? DORA (DevOps Research and Assessment) 구글에서 개발한 DORA (DevOps Research and Assessment)는 제품 개발을 보다 효율적인 운영할 수 있도록 도와주는 지표입니다. 특히 요즘 개발 프로세스 중에서 가장 핫한 키워드인 "애자일(Agile)"과 아주 밀접한 관계를 가진 지표이기도 해서 실제 많은 기업들이 이 지표를 사용하고 있습니다. DORA..

스크롤바 CSS로 커스텀 스타일링(디자인) 하는 법

글을 시작하기에 앞서 먼저 주의사항 하나 짚고 넘어가자. Mdn에서 스크롤바를 조작하는 ::webkit-scrollbar는 표준이 아니기에 제품 출시에는 사용하지 않기를 권고한다. 실제 호환성을 살펴보면 보는 모든 브라우저를 지원하지는 않는다. 그렇다면 지원하는 브라우저가 뭔데?? 바로 webkit 계열의 브라우저들이다. Webkit 계열에 해당하는 브라우저들에는 뭐가 있을까? - 크롬 (Android 웹뷰 포함) - 엣지 - 사파리 - 삼성 인터넷 - 오페라 - 네이버 웨일 그렇다. 사실상 대부분의 브라우저들이다. 그렇기에 ::webkit-scrollbar는 웬만하면 모든 브라우저에서는 된다. 하지만 파이어폭스 유저들을 위한 서비스라면 호환이 안 되니 이 점은 참고하자. 먼저 스크롤바를 스타일링하기 위..

웹/CSS 2024.04.05

2024 팀 네이버 신입공채 코딩테스트 후기

웹 개발자라면 그것도 프론트엔드 개발자라면 네이버는 정말 가고 싶은 회사 중 하나다. 이번 채용공고에서 25년도 2월 졸업자까지 지원이 가능했기에 지원자격에 딱 맞기도 했고 올해 하반기는 채용이 없을 확률이 매우 높기에 일단 되든말든 코테라도 봐보자해서 지원하게 되었다. 3월 18일까지가 지원서 접수였고 오늘 23일 아침 10시~12시에 코딩테스트가 진행되었다. 진행시간 : 10시 ~ 12시 문제수 : 3문제 진행 환경 : 프로그래머스 이전에 프로그래머스에서 문제를 푼 경험도 있었고 코딩테스트를 봐본 경험도 있어서 IDE가 어색하지는 않았다. 그저 내가 코테 공부를 많이 안 했을 뿐...지금 인턴도 하고 있고 출퇴근하면서 정신 없는 건 사실이지만 어쨌거나 공부를 안한 건 사실이다ㅋㅋㅋㅋ 일단 3문제를 다..

취준 2024.03.23

백준 2839 - 설탕 배달

처음 든 생각 - 브루트 포스해도 시간 복잡도가 괜찮을까? -> 최대 50000이니깐 O(N)으로 한쪽으로만 탐색을 다 하면 충분하겠네 나의 답 import sys input = sys.stdin.readline N = int(input()) three = N // 3 five = 0 isPossible = False result = 10000000 while three >=0: if (N - (three * 3)) % 5 == 0: five = (N - (three * 3)) // 5 result = min(result, three + five) isPossible = True three -= 1 if isPossible: print(result) else: print(-1) 사용될 3의 개수의 최댓값..

백준 1018 - 체스판 다시 칠하기

처음 든 생각 - 8*8 이라는 체스판의 크기를 일정하므로 시작점에 대한 좌표를 기준으로 가로 8개, 세로 8개를 세면 되겠다. - 다시 칠해야하는 개수는 정답 후보군이 2개 밖에 없으므로 정답을 하드코딩하여 비교해준다. 나의 답 import sys input= sys.stdin.readline N, M = map(int,input().split()) ans1 = [ ['B', 'W', 'B', 'W', 'B', 'W', 'B', 'W'], ['W', 'B', 'W', 'B', 'W', 'B', 'W', 'B'], ['B', 'W', 'B', 'W', 'B', 'W', 'B', 'W'], ['W', 'B', 'W', 'B', 'W', 'B', 'W', 'B'], ['B', 'W', 'B', 'W', 'B..

백준 19532 - 수학은 비대면강의입니다

처음 든 생각 - 연립 방정식을 해결했던 과정을 하나씩 복기해보자 1. x또는 y의 계수를 최소공배수로 맞춰준다 2. 두 개의 식을 빼서 x 또는 y를 구한다 3. 구한 하나의 변수를 기준으로 계산하여 나머지 변수의 값을 찾는다. - 최소공배수는 (두 수의 곱) / (두 수의 최대 공약수) 로 구할 수 있다. math.gcd를 사용하자. 나의 답 import sys, math input= sys.stdin.readline a,b,c,d,e,f = map(int,input().split()) if a == 0: y = c // b x = (f-e*y) // d print(x,y,sep=' ') elif d == 0: y = f // e x = (c-b*y) // a print(x,y,sep=' ') eli..

백준 14889 - 스타트와 링크

처음 든 생각 - 조합을 백트래킹으로 구현해서 팀을 만든 다음, 나머지 팀도 구해서 각각의 능력치를 비교해주면 되겠다. 나의 답 import sys input = sys.stdin.readline N = int(input()) arr = [] for _ in range(N): arr.append(list(map(int, input().split()))) result= 10000 t1 = [] def f(p): if len(t1) == N//2: global result t2 = [j for j in range(N) if j not in t1] sum1 = 0 for k in t1: for l in t1: sum1 += arr[k][l] for m in t2: for n in t2: sum1 -= arr[..

백준 14888 - 연산자 끼워넣기

처음 든 생각 - 연산자를 하나씩 다 끼워넣어서 확인해도 될까? -> 피연산자가 최대 11개 이므로 연산자는 10개 사용 가능 즉, 10! 가지의 경우의 수가 최대이므로 완전 탐색해도 되겠다. - 그 다음은 백트래킹해가면서 모든 연산을 재귀적으로 수행하면 되겠다 나의 답 import sys input = sys.stdin.readline N = int(input()) arr = list(map(int, input().split())) operators_list = list(map(int,input().split())) max_value = -10000000000 min_value = 10000000000 def search(idx, operators,result): if idx == N: global m..

백준 1629 - 곱셈

처음 든 생각 - 일단 A, B, C 범위가 심상치가 않네 이건 뭔가가 숨겨져 있다. 그래서 구글링을 좀 해서 풀었다. 나의 답 import sys input = sys.stdin.readline A,B,C = map(int,input().split()) def p(n): if n==1: return A % C else: tmp = p(n//2) if n%2 == 0: return tmp*tmp % C else: return tmp* tmp * A % C print(p(B)) 먼저 코드 설명에 분할 정복을 이용한 거듭제곱 알고리즘 부터 살펴보자. https://hbj0209.tistory.com/43 [Algorithm] 분할정복을 이용한 거듭제곱 # 분할정복을 이용한 거듭제곱 - C**n연산은 x를 n..

728x90