1. UI의 화면 비율은 모니터의 크기 비율, 시스템의 크기 비율, 창의 크기 비율을 고려하여 정해진다
2. UI의 데이터 구조는 크게 보면 백엔드에서 받아온 데이터 변수, 그걸 가공한 데이터 변수, UI와 연동 시킬 데이터 변수로 나뉜다
2-1. 리소스 및 큰 파일의 경우 파일 매니저 클래스를 만들어 메모리 및 simd에 최적화 되기 위한 get, set 관리를 해준다
2-2. 큰 파일을 불러 이용하는 경우 계산하기 쉬운 크기로 만든 캐시용 클래스를 만들어 UI에 제공한다
2-3. 로딩이 오래 걸리는 경우 프리로딩을 할 액션을 고려하는것이 좋다
2-4. 변수를 가공한 각종 바리에이션 변수들도 클래스로 모아서 관리를 해줘야한다
3. 의존성을 줄이는 핵심은 잘게 쪼개거나 의존성이 필요한것을 모아 하나로 관리 하는것이다.
4. UI에서 보여지는 값이 바뀌는 타이밍은 get, set을 할때 옵저버 클래스가 연동되어 바꿔준다
5. 상속 구조는 스택처럼 되어있어서 n번째 상속된 클래스 자료형으로 해당값을 부르면 n번째 위에서 n번째까지의 변수를 참조할 수 있다
6. 배열은 주로 아날로그 신호같은 연속성을 표현하기 위하여 사용되며
링크드리스트는 중간중간 수정이 잦은 자료구조를 위해 사용된다
수정이 잦은 구조에 연속성을 가진 자료형을 사용할 경우 유지보수 하기 너무 복잡해진다
7. 쉬우면서 효율적인 업데이트 하고 싶다면 트리 구조로 변수를 만들어야된다
n번째 트리가 바뀌었다면 n번째 이전까지만 업데이트를 한다
8. 실시간 동작하는 프로그램은 멀티프로세스 구조로 만들어 죽을때마다 부모 프로세스가 다시 실행시켜준다
9. 프로세스간에는 데이터 독립이므로 통신, 파일 같이 둘 다 볼 수 있는 중간 경유지를 통해 데이터를 공유한다
복잡한 시스템간의 연결은 중간 관리자를 넣어야 수월하다
10. 멀티스레드를 사용하는 방식은 여러가지가 있다
단순히 스레드를 쓸때마다 만들거나
영역마다 큐를 만들어서 작업을 넣고 스레드가 하나씩 빼가서 돌게 만들거나
스레드 풀을 만들어놓고 작업을 던져버리는 방법 등이 있다
11. 런타임 도중 에러가 터질걸 감안하여 어떤 데이터를 남길지 결정하고 try, catch 문을 작성해줘야 한다
12. 24시간 서비스 제공시 트래픽이 많은 동작 시간과 배치 파일이나 각종 업데이트를 진행하는 유휴시간을 정해야한다
13. Log도 단계가 있다. 높은 위협을 남기는 로그, 일반적인 사항을 기록하는 로그 등이 있고 이에 따라 대응 메뉴얼도 존재 해야한다
14. 긴 동작 과정을 가진 함수는 항상 단계를 나눠 중간에 중단되더라도 다시 재시작 할 수 있는 트랜잭션의 구조를 가져야한다
15. 변수에 스레드 락을 걸어놓더라도 읽기 같은 낮은 위험도를 가진다면 접근 가능하게 해서 퍼포먼스를 늘릴수 있다
확실히 잘모르는거 쓸 경우 글 표현이 추상적이게 됨
국비야?
현직인데 물경력이여서 공부중임
뭐보고 정리함?
대부분 유투브 강의임 우테코, 널널한 개발자, 코드없는 프로그래밍을 주로 봄