Always awake
죠.
« 2024/11 »
일 |
월 |
화 |
수 |
목 |
금 |
토 |
|
|
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
관리 메뉴
Always awake
2024.03.14 본문
개발일지
2024.03.14
죠.
2024. 3. 15. 00:01
개발
- File을 받을때 URL에서 받는게 나을거같아서 수정
- 그리고 계속 CORS에러가 뜨네. 안났던거같은데,,, 왜이러지? 일단 프론트를 cors예외로 추가는 해보았다.
- 아니 백에서도 등록할때 내부ip가 아니라 localhost:5173처럼 등록을 해줘야하네? 당황스럽다. 같은 내부망에서는 localhost가 어디서든 먹히나?
- 파일 올리는게 생각보다 일이구만. 실제 브라우저에서 돌리는건 또 다른 일이구나를 깨닫는중.
- 아무튼 결국은 파일 잘 올라간다. 여러 파일 한번에도 올라가고, 이제 비동기 업로드까지 구현했다.
- 기존에 쓰던 shutil 라이브러리의 copyfileobj는 비동기 지원이 안돼서, aiofiles 패키지를 다운받아 구현했다.
destination = f"../../SLAMdata/{project_id}/{randstr}_{filename}"
async with aiofiles.open(destination, "wb") as dest:
content = await upload_file.read()
await dest.write(content)
- 근데 filename을 ../../route/main.py처럼 조작해버리면.. 파일 경로 우회 공격이.. 가능할지도...... 이런미친... 파일 덮어써지니까 다 날라갈거아녀..
- 다행히 그저 파일식별을 위해 달았던 randstr이 해당 공격을 조금 막아주었다. 뒤에 달았다면 그것도 그런대로 처참했을지도.
- 하지만 혹시모르니까 filename에서 . / ;같은건 다른걸로 대체해버린 후 safefilename이라고 바꿔주었다.
- LightSail Vs EC2
- EC2는 사실상 DIY, 직접 만들면서 부족한부분은 알아서 추가되면서, 트래픽이든 데이터든 뭐든 이용한만큼 돈을 내는 방식
- 그에 비해 Lightsail은 어느정도 만들어진 틀 안에서 CPU, RAM, HDD 다 이용하고, 대신 월정액으로 어느정도의 고정된 돈을 내는 방식
- 확장성은 EC2가, 그냥 작은거 올려보기엔 Lightsail이 낫다고 할 수 있을거같다! 회사에서는 Ec2써야겠지만, 내 개인프로젝트는 라이트셰일로.
- S3
- 프로젝트의 라벨 이름들, 클래스들은 언제 만드는게 좋을까?
- 일단 클래스 하나마다 이름, 설명등을 써야하니 프로젝트 생성 된 후 메인화면에서 만드는게 낫지 않을까?
- 나중에 써보고 불편하면 바꾸자.
- DL
알고리즘
- 그래프
- https://boj.kr/9576 책 나눠주기 (G2)
- 그리디도 될거같긴한데 숫자 크기도 그렇고 보자마자 이분매칭 생각나니까 이분매칭 때리기
- 말곤 별거없다
- https://boj.kr/1867 돌멩이 제거 (P3)
- 돌 하나는 가로달리기 or 세로달리기로 제거될 수 있다.
- 결국 N*N의 격자판에서 가로달리기 N개와 세로달리기 N개가 연결된 간선이 있고, 이 간선은 돌멩이 하나를 의미한다.
- 최소한의 정점(달리기)를 선택해서 모든 간선(돌멩이)를 제거해야한다
- -> 최소 버텍스 커버!
- 쾨닉의 정리에 의해, 이분 그래프에서의 경우 이는 최대 매칭의 개수와 같음이 알려져있다.
- 따라서 이분매칭만 잘 만들고 식세우면 끝
- 세그트리
- https://boj.kr/22876 츠바메가에시 (P4)
- 예전에 신촌지역 알고리즘 캠프 랜덤디펜스때 나왔던 문제,. 이제 다시 풀어봤다
- 구현량이 꽤나 많지만 일단 핵심은 최댓값 2개 가지고있는 세그 만들기
- 거의 처음으로 C++로 세그트리 구현한거같다! 잘 돼서 기쁘다. pair<int, int>로 하면 그냥 편하게 할수있구나. 파이썬이었으면 차원추가된다고 메모리 엄청먹었겟지..
- 사람들 풀이를 보니 multiset?을 쓰네. 이걸 쓰면 훨씬 쉽다고? 감이 안오네.. 공부해봐야겠다.
보안
- FTZ
- FTZ라는걸 추천하더라 (https://www.youtube.com/watch?v=q3zeTVW3PPs&t=41s)
- 한번 해봐야겠음.
- Trainer1 : ls (-a, -l)
- Trainer2 : pwd, cd, mkdir, rmdir, cp, mv등 기초적인 파일/디렉토리 움직임
- Trainer3
- w : 서버 접속자 보기 : TTY는 콘솔, pst는 터미널 접속
- finger -l 사용자 자세히 보기
- tty 자신의 터미널 정보 확인
- ifconfig 현재 접속 서버 ip 확인
- Trainer4
- /bin, /etc, /home 등 기본적으로 담긴 정보들 확인
- /bin, /boot이 각각 리눅스 실행파일 / 부팅파일
- /etc에 뭔가 되게 많다
- /passwd, /shadow, /issue.net등..
- /tmp 에 작업물들 자유롭게 올라가고
- /home 이 우리가 보는 디렉토리.
- Trainer5
- $whoami, $id 등으로 현재 내 정보 보기
- uname -a로 커널 정보 확인
- cat /etc/*release 서버 OS버전확인
- rpm -qa 패키지 정보
- cat /proc/cpuinfo에 cpu정보