프로젝트 진행에 관해

김태성·2024년 9월 30일

개인 프로젝트-1

목록 보기
46/53
post-thumbnail

요즘 너무 바빠서 매일 업데이트 하지 못하고 있다.
그래서 앞으로 프로젝트를 어떻게 진행할 것인가에 대해 정리를 해 보고 넘어가려고 한다.
지금 현재 상황을 리마인드 하기 쉽게 정리하는 느낌이라고 보면 된다.

기능 업데이트

지금 구현되어 있는 상황은

  • 공공데이터 API 받아오기
  • 백엔드 - 프론트 통신 연결(CORS)
  • 백엔드 - DB 연결
  • Redis 캐시
  • 커넥션풀/스레드풀/로그 저장소 변경(로그 저장, 서버 메모리 누수 방지)
  • 자동 배포

아키텍쳐 구현 사항으로는

  • Github Hook - Jenkins - DockerHub를 통한 스케일아웃 가능 구조
  • AWS EC2/S3를 통한 백/프론트 서버 배포
  • Route53을 통한 도메인/certificate manager를 통한 HTTPS 인증
  • EC2 ALB

각 구현에 대한 보충설명으로는
1. DockerHub를 통해 EC2 인스턴스를 늘리더라도 도커만 다운받았을시 바로 스케일 아웃 가능
2. 정적 서버는 S3에 따로 배포해서 CDN 사용
3. 도메인/https 설정
4. ALB 설정시 AWS에서 자동으로 DDoS 등의 공격 자동으로 방어가능
5. 이후 Nginx 웹서버를 통한 리버스 프록시를 구현하려고 해도 서버 스케일아웃이 가능하기 때문에 도커로 구현 가능

이 되겠다.
구현을 할때 중요하게 생각했던점은
개발자가 서버를 관리할때 손이 적게 갈 수는 없을까? 였고, 그래서 스케일아웃, 파이프라인 세팅이 간편한 방향을 지향했다.
또한 감당 불가능한 아키텍처는 손대지 말자 도 크게 작용했다.

그 예시가 바로 Apachi Kafka, K8S, MSA였다.
이 기술을 써야 할까?를 고민해 보자.

  • 기본적으로 위 기술들은 정말 고난이도의 기술이라 지금의 내가 이해하지 못한다. 이해했다고 하더라도 착각일 확률이 높다.
  • 또한 인스턴스가 하나이기 때문에 K8S를 사용해 관리할만큼의 충분한 컨테이너가 없으며
  • 서버 하나, 극소수의 기능을 구현하였기 때문에 MSA를 이용하여 나눠버릴 서비스조차 없다.

그래서 추후에 사용하게 된다면 모를까 괜히 도입해서 이도저도 아닌 상황이 만들어지는건 싫다.

추가사항1

곰곰히 생각해보았는데 Nginx를 사용하지 않고 AWS의 기능만을 사용해서 스케일아웃이 가능하다.

추가사항2

앞으로 어떤 기능을 추가할 것인가에 대해서 고민해 보자면

  • 다른 공공 API 데이터 받아오기
  • 받아온 데이터를 User 지역정보에 맞게 반환하는 기능

이거를 만들면 된다.
환경셋팅이 다 끝났기 때문에 서비스만 늘리면 되는 것이다.
사실 이거 때문에 서비스 증가가 후순위로 밀렸다.

CS 공부

이전 글을 보면 한양대학교 강의를 보며 네트워크를 공부 했었다.
그 이유는 '내가 보낸 데이터가 서버에 어떻게 가는것일까?' 라는 궁금증도 있었고,
네트워크에 대해 너무 난잡하게 공부해서 머리에 정리가 되지 않았기 때문이다.

OS

그래서 앞으로는 OS에 대해 복습해볼까 한다.
지금 생각나는 OS는 다음과 같다.

  • 스레드, 프로세스의 운용(정의, 기능, 레이스컨디션 제어, 컨텍스트 스위칭 등)
  • 컴퓨터 구조(L1캐시 ~ HDD, CPU 구동방식, 스케줄링, I/O, 페이징/세그멘테이션, VM 등등)
  • 시스템콜

정도가 있다.
하지만 위의 내용 뿐만 아니라 방대한 양이 남아있기 때문에, 한번 복습하는겸 싹 훑어볼 생각이다.
개인 프로젝트를 통한 서버 구동 방식도 어느정도 익혔기 때문에 복습의 효과가 클 것이라 생각한다.

알고리즘

프로젝트 한다고 2~3달정도 대충 풀었더니 기본적인 부분이 햇깔리기 시작한다.
물론 골드 하위급 정도 문제는 보고 풀수있긴 한데, 문제는
알고있는 내용을 정돈해서 말로 표현하기 쉽지않다.
그래서 각 분야별로 공부하면서 정리해보는 시간을 가지려고 한다.
사실 잔디도 시간이 없다보니 골드도 풀긴하지만 브론즈 비율이 매우 높다..
반성해야 할 부분이다.

또한 자료구조에 대해서도 공부를 좀 더 해볼 생각이다.
언어는 자바/파이썬 중에 '파이썬'으로 할 생각이다.
물론 자바로 공부하면 나중에 편하긴 하겠지만 어디까지나 현실적인 오버헤드가 극심할것으로 예상한다.
코테에 자바 제한이 걸린다면 그때 해도 늦지 않다고 판단했다.

DB

그러고 보니 데이터베이스도 한번도 안들어봤다.
그래서 네트워크 공부를 했을때와 마찬가지로, 대학 강의를 들어볼 생각이다.

마지막으로

하반기 공체 시즌이 왔다. 자소서 쓰고 여러가지로 정보 모으느라 글 쓸 시간이 별로 없다..
또한 알고리즘과 같은 공부기록을 일일이 다 쓸수가 없어서 글을 쓰는 비중이 줄어들 거 같은데,
어찌되었든 간에 꾸준히, 지속적으로 공부하는게 중요하다고 생각한다.

모두가 힘든 채용 한파를 지나고 있다.
나 뿐만 아니라 다른 취준생들도 좋은 결과가 있길 바란다.

profile
닭이 되고싶은 병아리

0개의 댓글