본문 바로가기
꾸준히

[TIL-09] 개발자로 성공하려면, 생각하는 개발자

by 무자비한 낭만주먹 2024. 1. 3.

[그림1]. 오늘도 감사한 공부 시작 ~

 

목차
0. 오늘의 학습 시간
1. 오늘 배운 것
2. 감사한 일

 

0. 오늘의 학습 시간
[스파르타 내일 배움 교육]

09:00 ~ 24:00: 약 15시간

 

1. 오늘 배운 것

 

오늘은 튜터님들이 특강을 해주었는데 생각보다 더 배울게 많아서 기분이 좋았다.

 

1. 개발자로 성공하려면 RAM을 잘 다뤄라

지금까진 작은 규모의 프로젝트만 진행해봤지만 나중에 서비스에 많은 트래픽이 몰리면 프로그램이 스스로 메모리 영역들을 활용한다. 이 때 잘못된 설정으로 오버플로우의 문제가 발생하거나, 잘못된 프로그래밍으로 인해 변수나 상수 영역을 과도하게 사용할 수도 있다. 동적 영역을 너무 많이 써서 프로그램이 꼬일수도 있다. 따라서 메모리를 잘 다루는 것은 좋은 개발자로 성장하는데 중요하다.

 

[그림2]. RAM의 구조

Program Code(text 영역): 소스 코드가 들어가는 영역
Data: 전역, static 변수가 들어가는 영역
Heap: 동적 할당을 위한 영역 (DMA), 생성자 소멸자의 개념과 연동됌
Free Store: 왔다갔다 하는 영역(?) 이어서 오버 플로우가 생긴다. 아래 c++ 예제 첨부한다.
Stack: 프로그램이 자동으로 설정하는 영역, (지역 변수, 매개 변수등의 변수들이 저장됌): 함수 호출 끝나면 할당 해제  (+ 파이썬 inner function이랑 first class function, 데코레이터 패턴등을 이해하기 위해 필요한 개념)

 

2. 개발에 대한 기본 지식을 쌓아라
: 구조적인 부분도 이해도가 있어야 큰 프로그램을 만들 때 도움이 많이 될 것 같다는 설명을 해주셨다. 보고 공부하고 싶은 거리가 있어 쇼핑하는 기분이었는데 지금은 너무 바쁘니 참아야겠다.

 

[그림3]. 튜터님이 말한 개발에 대한 기본 지식

 

3. 레거시 시스템 개선 방안을 고민해봐라
: 레거시 시스템 개선 방향 토론 요즘 면접 질문중에 본 회사의 레거시 시스템 개선 방안에 대해 토의하는 방식을 진행한다고 한다. 예시를 몇가지 들었는데​

Q1. 손흥민 선수가 축구 할 때 마다 네이버에 토트넘 검색이 폭발적으로 증가해 트래픽이 몰린다. 해결 방안은?
(단, EB 환경설정을 통해 최대한의 로드밸런싱이나 오토스케일링을 했는데도 EC2가 터질때가 있다는 전제)

A1. 일단 Redis를 써서 검색 효율을 높인다
A2. 토트넘을 검색하는 서비스를 따로 구축해 다운되더라도, 그 외 서비스에 무리가 가지 않게끔 한다.

등등 ..
4. 지금도 질문할 거리와 생각할 거리는 많다.

Q1. 문자열 앞에 f를 붙이는 문법은 내부적으로 무슨 일이 일어나는가?
Q2. 왜 파일은 form 형식이 다른가?
Q3. Chrome 개발자 도구에서 request, response의 구조는 어떻게 되어있는가
Q4. http 프로토콜이 뭘까
Q5. get, post는 구성이 어떻게 다른가?

 

2. 감사한 일

 

사실 특강을 들으면서 내가 배워야 할 것들이 많구나라는 생각에 막막했지만 반대로 생각하면 내가 앞으로 나아가야 할 방향을 깨닫는 기회였다고 생각하니 오늘 하루도 감사했다.

 

 

오늘 하루도 공부할 수 있어 크게 감사합니다

2022-04-29 개발자 최찬혁