[TIL] 사전캠프 4일차 (2024/06/07)

2024. 6. 7. 18:01·TIL 🔖/TIL
14:00 ~ 14:20 데일리 스크럼
14:20 ~ 15:20 CODEKATA (알고리즘, SQL)
15:20 ~ 18:00 개인 학습 (강의 수강, 개발아티클스터디)
CODEKATA 
 

[프로그래머스/JAVA] 짝수의 합

문제설명정수 n이 주어질 때, n이하의 짝수를 모두 더한 값을 return 하도록 solution 함수를 작성해주세요.제한사항0  n ≤ 1000나의 풀이class Solution { public int solution(int n) { int answer = 0; //for 루프를

fargoewave.tistory.com

 

[프로그래머스/JAVA] 배열의 평균값

문제설명정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소의 평균값을 return하도록 solution 함수를 완성해주세요.제한사항0 ≤ numbers의 원소 ≤ 1,0001 ≤ numbers의 길이 ≤ 100정답의 소수

fargoewave.tistory.com

  • 알고리즘 문제 풀이 (9~10번)
  • SQL 문제 풀이 (3번)

 

개발 아티클 스터디 

1. [마인드셋] 10배 이상 뛰어난 개발자가 되는 법 (https://yozm.wishket.com/magazine/detail/1373/)

 

10배 이상 뛰어난 개발자가 되는 법 | 요즘IT

여러분은 어떤 개발자인가요? 최고의 개발자는 평범한 개발자보다 실제로 10배 이상 뛰어납니다. 초급 개발자로 구성된 팀 하나보다 10x 개발자가 더 빠른 결과물과 더 많은 가치를 제공합니다.

yozm.wishket.com

   평범한 개발자보다 10배 뛰어난(10x) 최고의 개발자란 누구인지,

   그리고 최고의 개발자가 되기 위해서는 무엇을 해야 하는지에 대하여.

  • 10x 개발자: 최고의 개발자가 어떤 특징을 가지고 있는지에 대해 다루어진다. 그들은 일반적인 개발자보다 훨씬 뛰어나며, 이는 단순히 타이핑 속도나 코드 양에서만 나타나는 것이 아니라 마음가짐과 접근 방식에서도 드러난다. 그들은 올바른 도구를 선택하고, 올바른 질문을 하며, 우선순위를 정하는 방법을 알고 있다. 또한, 코드를 작성하는 것보다 삭제하는 데 더 많은 시간을 할애하여 효율성을 높인다.
  • 사용하는 도구에 대한 연구: 초보 개발자는 자신이 알고 있는 도구에만 의존하고, 다른 대안을 찾지 않는 경향이 있다. 이에 반해 최고의 개발자는 새로운 기술이나 도구를 학습하고, 문제 해결에 적합한 도구를 선택하여 생산성을 높인다. 이는 맥락에 맞는 최선의 해결책을 찾는 것에 대한 중요성을 강조한다.
  • 도움을 요청하지 않음: 초보 개발자는 종종 혼자 문제를 해결하려 하며, 도움을 요청하는 것을 꺼린다. 그러나 최고의 개발자는 필요할 때 도움을 요청하고, 팀원들과 협력하여 문제를 해결한다. 이는 혼자서 모든 것을 해결하려는 자부심을 버리고 효과적인 팀 플레이를 통해 더 나은 결과를 이끌어 내는 방법을 강조한다.
  • 비즈니스 가치를 제공하지 않음: 최고의 개발자는 자신의 일이 비즈니스에 어떤 가치를 제공하는지를 이해하고, 그에 따라 행동한다. 코드를 작성하는 것이 아니라 비즈니스 목표를 달성하기 위한 수단임을 이해하며, 필요한 경우에는 코드 없이도 목표를 달성할 수 있는 방법을 찾는다. 이는 개발자가 단순히 코드를 작성하는 것이 아니라 비즈니스의 목표를 이루기 위해 노력해야 한다는 개념을 강조한다.

가장 유능한 개발자와 그렇지 않은 개발자를 구분 짓는 차이는 소프트 스킬이다. 하지만 모든 지침을 충실히 따르는 개발자라도 같이 일하기 힘들다면 소용이 없다. 좋은 개발자가 되기 위해 자존심을 내려두고 팀플레이를 기억할 것 ~

 

 

2. [IT] AI 시대에 필요한 개발자, Product Engineer ( https://yozm.wishket.com/magazine/detail/2485/ )

 

AI시대에 필요한 개발자, Product Engineer | 요즘IT

생성형 AI의 등장은 기존 개발 업무를 빠른 속도로 변화시키고 있습니다. 어느새 코파일럿(copilot)과 함께 코드를 짜고, 문제가 발생하면 스택오버플로(stack overflow)가 아닌 chatGPT에게 물어봅니다.

yozm.wishket.com

변화하는 개발 환경

  • AI의 발전: AI 도구들이 코딩을 도와주고, 문제 해결을 지원하면서 개발 방식이 크게 변화하고 있음.
  • 채용 트렌드 변화: AI와 SaaS 기술 덕분에 비즈니스 로직을 빠르게 구현할 수 있어, 기업들은 단순 코더보다 비즈니스 전반에 기여하는 프로덕트 엔지니어를 선호함.

프로덕트 엔지니어란?

  • 정의: 코드 작성만이 아니라 비즈니스 전 과정에서 문제를 해결하고, 고객의 요구를 반영하며 제품을 개선하는 개발자.
  • 특징: 단순한 기술 구현을 넘어, 고객 경험과 비즈니스 성과에 중점을 둠. 기술과 비즈니스 목표 사이의 균형을 유지하며 제품 개발 과정에서 중요한 의사 결정을 내림.

프로덕트 엔지니어가 필요한 이유

  • 팀 리더로서의 역할: PM이나 C-Level로 성장하기 위해서는 개발뿐 아니라 기획, 디자인, 마케팅 등 다양한 분야에서의 이해와 협업 능력이 필요함.
  • 기업의 기대: 단순 코딩보다는 고객 문제를 해결하고, 이윤 창출에 직접적으로 기여하는 인재가 더 가치 있음.

프로덕트 엔지니어가 되기 위한 3가지 원칙

  1. 프로덕트의 전 과정에 관심 가지기:
    • 기획, 디자인, 개발, 마케팅 등 모든 단계에 Why?라는 질문을 던지며 탐구.
    • 고객의 관점에서 생각하며 제품을 개발.
    • 사이드 프로젝트 등을 통해 전 과정을 경험하고, 실무에 적용.
  2. Over Engineering 지양:
    • 코드의 안정성과 유지보수성도 중요하지만, 빠른 시장 검증과 고객 피드백 수렴이 더 중요할 때가 많음.
    • 개발 속도와 유지보수성 사이에서 최선의 선택을 하며, 팀과 소통하여 균형 잡기.
  3. 하드스킬과 소프트스킬의 밸런스:
    • 협업과 커뮤니케이션 능력 중요.
    • 상대방에게 명확하게 설명하고, 의견을 전달하는 능력 필수.
    • 글쓰기와 같은 활동으로 커뮤니케이션 능력 키우기.

 

3. [개발] 주니어 개발자를 위한 엄청 쉬운 네트워크 이야기

 

주니어 개발자를 위한 엄청 쉬운 네트워크 이야기 | 요즘IT

저는 5년차 개발자입니다. 회사에서 신입 개발자들과 함께 일하다 보면 네트워크에 관해 모르는 분들이 많으시더군요. 저도 사실 처음에는 그랬습니다. 그런데 일을 하다 보니 주니어 개발자

yozm.wishket.com

  • 주니어 개발자가 네트워크를 알아야 하는 이유:
    • 개발자로서 네트워크 지식은 클라우드 서비스를 다루고, 토이 프로젝트를 배포하고 운영하는 데 필요하다. 또한 아키텍처 결정과 다른 팀과의 소통에도 중요하며, 웹 개발자로서는 웹 요청과 응답 과정을 이해하는 것이 필요하다.
  • 네트워크란?:
    • 두 대 이상의 컴퓨터가 연결되어 통신하는 것
    • 네트워크는 여러 컴퓨터가 서로 연결되어 데이터를 주고받을 수 있게 해주는 것이다. 이를 비유로 컴퓨터 마트의 확장 과정으로 설명함.

1) 컴퓨터 네트워크를 만들다

초기에는 컴퓨터를 직접 연결해서 통신을 함. 데이터의 전송 방식을 약속한 프로토콜을 만들어 통신했습니다. 후에 허브가 등장하여 연결을 용이하게 함.

- 김씨 - '컴퓨터 마트' 라는 이름으로 마트를 운영, 마트 장부를 컴퓨터로 엑셀 관리
- 이후에 옆 동네에 컴퓨터마트 2호점 오픈, 김씨가 2호점에 매출 장부 요청 > 엑셀을 프린트하여 우편으로 전달
- 비효율적이라 생각한 김씨는 컴퓨터를 서로 연결하여 데이터를 보내는 방식을 떠올림 > 이것을 컴퓨터 네트워크라 부르기로 함

 

2) 약속(프로토콜)을 정하다

데이터를 주고받는 방식을 정한 것. 예를 들어, 데이터의 순서나 형식 등을 정합니다.

문제 발생) 각 컴퓨터는 데이터를 주고받는 형식을 지정할 수 있었는데, 1호점, 2호점의 형식이 달라 오류가 발생
김씨는 즉시, 내용을 두 번째에 넣자는 약속을 2호점 주인과 체결.
이러한 약속된 데이터 형식을 프로토콜 이라고 부르기로 함

 

3) 허브의 등장

여러 컴퓨터를 중앙에서 관리하는 장치로, 데이터의 전송을 관리하고 분배함.

서로 빠른 속도로 매출정보를 공유하게 되어, 그것을 바탕으로 사업이 번창하여 3호점 오픈
마트가 두개였을 때는 두 대의 컴퓨터를 직접 연결하였으나, 매번 마트가 늘어날 때마다 컴퓨터에 선을 연결하게 되면 컴퓨터와 컴퓨터를 연결하는 선이 기하급수 적으로 늘어날 것이라고 생각.

그래서 컴퓨터끼리 직접적으로 연결하지 않고 중앙에 하나의 장치를 두기로 하고 이를 중앙에 위치한다는 의미로 허브라 부르기로 함.

 

4) 스위치의 등장

허브의 한계를 극복하기 위해 스위치가 등장. 목적지에 따라 데이터를 전송하는 기능을 추가함.

허브는 단순히 자신에게 들어온 데이터를 연결된 컴퓨터로 보내주기만 해 문제 발생
ex) 2호점에서 사과가 많이 팔리는 것을 알게 된 김씨는
컴퓨터 네트워크를 통해 2호점으로 사과 물량을 늘리라는 메시지 전송
그러나 허브에 연결된 3호점에게도 같은 내용이 전달되어, 3호점에서도 사과 물량을 늘림

김씨는 특정 컴퓨터에만 데이터를 전달할 수 있도록 이름을 붙이기로 함.
또한 단순하게 데이터 전달만 하던 허브를, 데이터의 방향 전환이 가능한 장치로 향상시킴.
이를 데이터의 전환이 가능하다는 의미로 스위치라고 부르기로 함.

2호점에만 메시지를 전달하기 위해 프로토콜도 변경. 보내는 컴퓨터의 정보와 받는 컴퓨터의 정보를 프로토콜에 추가하여, A에서 B로 장부 요청 시, B에서는 보낸 컴퓨터가 A라는 것을 확인하고, 프로토콜의 받는 컴퓨터로 입력하여, 정확하게 응답할 수 있게 됨.

 

5) 세계를 잇는 라우터

전 세계를 연결하여 네트워크를 형성하는데, 이를 위해 각 나라를 연결하는 장치인 라우터가 등장함. 데이터의 전송을 위한 프로토콜도 개선됨.

시간이 흘러 대기업이 된 컴퓨터 마켓은, 한국을 포함, 중국, 일본까지 진출하여 각 나라별로 네트워크를 이루고 있었음. 이를 나라마다 각자의 지역 네트워크를 형성하였다 하여, LAN(Local Area Network)이라 부르기로 함

네트워크에 통달한 컴퓨터 마트 창업자 김씨에게는 각 나라를 연결하여 데이터 통신이 가능하도록 하는 과제가 남음

김 씨가 처음 떠올린 방법은 각 나라마다 존재하는 스위치를 모두 서로 연결하는 것이었습니다. 나라 별로 거리는 멀지만, 당장은 스위치 개수가 적어 충분히 가능해 보였으나 LAN 내부에서 확장을 고려했을 경우 불가능

각 나라를 대표하는 장치를 두어 연결하는 것으로 해결함. 나라의 경로를 표시한다는 의미로 이 장치를 라우터라고 부르기로 함.

더불어, 다른 나라로 데이터를 요청하기 위해 프로토콜을 개선. 보낸 나라와 받은 나라의 정보가 다음과 같이 포함되어야 함. 
<보낸 라우터: KOR>
<받는 라우터: JAP>

 

'TIL 🔖/TIL' 카테고리의 다른 글
  • [TIL] 사전캠프 6일차 (2024/06/11)
  • [TIL] 사전캠프 5일차 (2024/06/10)
  • [TIL] 사전캠프 3일차 (2024/06/05)
  • [TIL] 사전캠프 2일차 (2024/06/04)
fargoe
fargoe
    fargoe
    fargoewave
    fargoe
    GitHub
    전체
    오늘
    어제
    • 분류 전체보기 (166)
      • TIL 🔖 (140)
        • TIL (69)
        • 코딩테스트 (71)
      • DEV (14)
        • Java & Spring (7)
        • MySQL (3)
        • Git&Github (4)
      • 개발지식 (10)
        • 알고리즘 (2)
        • 자료구조 (8)
        • CS (0)
      • 3D (1)
        • Unity (1)
      • ETC (0)
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
fargoe
[TIL] 사전캠프 4일차 (2024/06/07)
상단으로

티스토리툴바