ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 내일배움캠프 20일차(쓰레드, 고연봉 개발자 되는 법 특강)
    코딩공부 2023. 6. 13. 20:50

    오늘은 어제에 이어서 Spring입문 과정을 들었다.

    https://haeinj-backend-study.tistory.com/42

     

    Spring 입문 1주차(작성 중)

    그레이들: 빌드 자동화 시스템 빌드: 작성한 소스코드를 실행 가능한 결과물(JAR 파일)로 만드는 과정 그레이들 build.gradle 그레이들 기반의 빌드 스크립트 - 소스코드를 빌드 하거나 라이브러리들

    haeinj-backend-study.tistory.com

     

    저녁시간 이후에 쓰레드와 좋은 개발자가 되는 법에 관한 특강을 들었다.

     

    쓰레드 특강 메모

    • 멀티 프로세스/멀티 스레드의 차이?
    • 쓰레드 - 하나의 프로세스 내부에서 독립적으로 실행되는 하나의 작업 단위
    • 스레드 동기화-? / 스레드 동기화의 단점 개선 학습 필요
    • 멀티 스레딩 환경 - 여러개의 작업들이 동시에 실행되는 구조
    • 참고자료)CPU전이도
    • 하나의 CPU는 한번에 하나의 스레드만 처리할 수 있음
    • context switch - 프로세스 중 하나를 선택하여 일정시간 서비스를 수행하고 일정 시간 후 문맥 교환하여 다른 스레드를 서비스
    • 콘솔환경 - 일반적으로 스레드가 필요하지 않음 (예: 키오스크 등)
    • 스레드가 필수적인 프로그램 - 사운드 출력, 로그, 유저 동기화, 등...
    • 스레드 동기화 - 중요
    • 스케줄링 - 스레드는 동시에 실행되는 것처럼 보이지만 그렇지 않음 / 여러 개의 스레드가 스케줄링 되고 짧게 작업을 수행하고 그 다음 스레드에 자원을 양보 
    • 멀티 프로세싱 - 하나의 컴퓨터에 여러개의 프로그램 실행(프로세스 간의 리소스 교환 - 일반적으로는 불가능)
    • 멀티 스레딩 (스레드 간의 리소스 교환 가능) - static은 공유 자원, 멀티 스레드 환경에서 일일히 컨트롤 해야 함 
    • 스레드 동기화 - (필요한 이유)다수의 스레드가 하나의 자원에 접근할 때 문제 발생 -> 데드락, 자원에 문제 발생 / 병렬적으로 실행되는 스레드를 강제적으로 직렬적으로 실행되게 함 - synchronized, lock
      • 임계영역 설정

     

    연봉 1억 받는 개발자 되기 특강 메모

    • 나는 나를 얼마나 알고 있는가
      • 메타인지 - 내가 뭘 알고 뭘 모르는지 아는 것 
        • 뭘 모르는지 아는 것 - 학습: 무엇을 모르는지 알아가는 과정 
        • 뭘 알고 있는지 아는 것 - TIL 기록 
    • 개발 공부의 힘듦
      • 하는 일이 힘들수록 아무나 할 수 없는 더욱 가치있는 일 - 동료와 서로 의지 하기 
    • 열심히 하는 사람, 잘하는 사람보다 더 잘 학습하는 법 
      • 해내겠다는 마음가짐 - 악에 받친 감정
    • 번아웃
      • 오늘 할일을 감당 / 가늠할 수 없을 때 옴
      • 오늘 할일은 오늘 끝내기 - 내일의 번아웃 방지
      • 어떻게 적응할까?
        • 적정선을 아는 것 
          • 신입은 과감하게 질문하기 - 어느 정도 찾아보고 도저히 모르겠으면 질문 - 메타인지!
          • 개인의 메타인지
            • 내 업무의 핵심질문 정의
            • 내가 맡은 업무의 배경 조사- 배경을 만들어낸 원인 파악
            • 업무의 주체에 대해 트리형태로 분류하는 연습  
          • 조직의 메타인지 
            • 내가 조직의 리더라면 이 문제에 대해 어떤 결정을 내릴까
            • 조직의 목표를 알고 함께하고 있는가?
            • 문제를 바라보는 관점이 팀원마다 어떻게 다른지 정리 
        • 적극적인 질문
        • 겸손함
        • 과감함
        • 기록하는 습관 
        • 문제를 해결해본 경험 - 문제에 직면했을 때 어떻게 행동했는지, 그렇게 행동한 이유, 세부사항까지 말할 수 있어야 함 
    • 어떻게 일해야 할까
      • 직업을 가지는 개발자
        • 회사원으로서 내가 주어진 일을 해내는 것보다, 회사에서 내 업무의 전문성을 키우는 과정으로 여기기 
        • 항상 배우려는 자세 
      • 진심으로 개발하는 개발자
        • 기능이 아닌 서비스를 개발하는 사람 
          • 버튼 하나를 개발하더라도 버튼의 역할, 확장성을 생각 
      • 겸손
        • 커뮤니케이션 역량 - 논리력, 겸손함 
        • 코드 리뷰 - 충분히 존중하면서 
      • 살아있는 코드를 작성하자 
        • 코드를 통해 의도를 전달할것
        • 팀과 일관된 코드 스타일을 가질 것
          • 코드 컨벤션 적용 및 숙지(없으면 google 코드 컨벤션)
        • 하나의 역할만을 담당
          • SOLID 원칙
        • 매개변수를 명확하게 하기
          • 변수의 의미가 변수명에 포함되도록 
        • 예측 가능한 코드 
        • 부수효과 제거
        • 중요한 입력을 무시하지 말것
        • 테스트코드
        • 원시값을 포장
          • object 클래스를 기본으로 상속받고 있기 때문에 기능이 더 많음 
        • 변경 가능성을 최소화 
      • 채용시장에서 나의 무기를 계속해서 점검하기 
        • 채용공고 주기적으로 확인 
        • 참고서적 - 타이탄의 도구들 

    개발자 취업 초기 - 중기 - 장기 목표가 필요함 

    어떤회사의 어떤 서비스에 갈 것이다 <- 구체적인 서비스를 목표로 하고 갈 것

     

    '코딩공부' 카테고리의 다른 글

    내일배움캠프 22일차  (0) 2023.06.15
    내일배움캠프 21일차  (0) 2023.06.14
    내일배움캠프 19일차  (0) 2023.06.12
    내일배움캠프 18일차(ERD, API 개론)  (0) 2023.06.09
    내일배움캠프 17일차  (0) 2023.06.08
Designed by Tistory.