분류 전체보기 82

ubuntu 환경에서 내 도메인으로 https 배포하기 (가비아, fastapi)

이번 프로젝트에서는 aws를 안쓰기로 했다. aws를 안쓰면서 생기는 가장 큰 문제는 ssl인증서와 내 도메인으로 배포하는 부분이였다. 먼저 https로 배포하기 위해선 가장 먼저 수행되어야 하는건 ssl 인증서 발급이다.인증서를 발급해주는 서비스를 하는 사이트는 많이 있지만 비용이 만만치 않다..가비아 기준으로 제일 저렴한 인증서 비용이 1년에 4만원이다 다행이 우리는 차선책이 존재한다바로 Let's Encrypt이다Let's Encrypt는 무료 인증서 보급을 통해 https의 확산을 늘리겠다는 취지로 시작된 비영리 프로젝트이다.무료이긴 하지만 단점은 인증 기간이 매우 짧다 # 1. nginx 설치sudo apt install nginx # 2. letsencrypt 설치sudo apt-get ins..

반응형 웹 모바일 100vh 문제

반응형 웹이 제일 귀찮은 작업같다...이게 맞는진 모르겠는데 하나하나 media태그를 통해 조건을 다 걸어줘서 모바일버전을 구현하는중이다 하지만 구현도중에 핸드폰으로 사이트를 접속했을 때 문제가 생겼다. 모바일 화면에선 height 100vh의 기준이 모바일 주소창은 제외라서 원치 않는 스크롤이 생기는 문제이다. 문제 해결은 간단한 서칭으로 해결할 수 있었다.  let vh = window.innerHeight * 0.01; document.documentElement.style.setProperty('--vh', `${vh}px`); window.addEventListener('resize', () => { let vh = window.innerHeight * 0.01; document..

문장 비교

진행하는 프로젝트에서 문장을 비교해서 하이트라이트 처리해주는 기능이 필요했다.처음엔 쌩 js로 구현을 간단하게 했지만 생각할부분이 생각보다 많이 존재했다. 예를 들어 이건 A 문장 입니다이건 B 문장 입니다같은 형태가 동일한 문장에 대해선  이건 B 문장 입니다 처럼 하이라이트 처리가 잘 되지만이건 A 문장 입니다이건 B 문장 일수도 있습니다처럼 형태가 달라져버리면내가 기대하는건 이건 B 문장 일수도 있습니다이지만 실제론이건 B 이건 B 문장 일수도 있습니다  처럼 하이라이트가 되어버린다내가 원하는 완벽한 문장비교를 위해선 생각보다 조건을 까다롭게 잡아야 될거같았다.하지만 그렇게 비중이 큰 기능이 아니다보니 여기에 오랜 시간을 투자하는건 시간낭비라 판단되어 라이브러리를 서칭하다가diff 라는 라이브러리를..

React 트리구조 (without library)

그룹웨어 만드는 과정중에 조직도 페이지를 위해 트리구조 화면단이 필요했다라이브러리를 사용한다면 쉽게 만들순 있겠지만 라이브러리 없이도 만들수 있을 거 같아 그냥 만들어봤다 일단 트리구조를 위해선 당연하게도 트리구조 data가 필요하다 const initialTreeData = [ { id: '1', label: '(주)코스모스오피스', depth: 0, type: 'root', expand: true, children: [ { id: '2', label: '대표', ..

백준 - 11653 (python)

첫 번째 풀이 def find_primes(n): primes = [] for num in range(2, n + 1): is_prime = True for i in range(2, int(num**0.5) + 1): if num % i == 0: is_prime = False break if is_prime: primes.append(num) return primes N = int(input()) primes = find_primes(N) index = 0 while N != 1: if N % primes[index] == 0: print(primes[index]) N //= primes[index] else: index += 1 미리 n까지의 소수를 담은 배열을 생성하고 반복문을 통해 소인수 분해를 ..

백준 - 9506 (python)

입력값의 제한이 100,000인걸 보고 제한조건에 해당하는 완전수가 별로 없을거같아서 야매로 코드를 한번 짜봤다. while True: arr = [] n = int(input()) if n == -1: break elif n == 6: print("6 = 1 + 2 + 3") elif n == 28: print("28 = 1 + 2 + 4 + 7 + 14") elif n == 496: print("496 = 1 + 2 + 4 + 8 + 16 + 31 + 62 + 124 + 248") elif n == 8128: print( "8128 = 1 + 2 + 4 + 8 + 16 + 32 + 64 + 127 + 254 + 508 + 1016 + 2032 + 4064" ) else: print(f"{n} is N..