분류 전체보기 (260) 썸네일형 리스트형 [인프콘2024] 컴퓨터 밑바닥에서 찾는 개발자 성장의 비밀 know = 설명할 수 있음 "개발자가 성장하려면 제대로 알아야 한다" CPU CPU = CPU Core + Controllers Core : 소프트웨어 해석, 실행 담당 => 연산 처리Controller : 연산 결과에 따른 CPU 주변 장치 제어 담당 => 주변 장치(H/W)별로 존재 ※ 컴파일 : 자연어를 CPU 코어가 이해할 수 있는 CPU 명령어로 변환하는 과정=> CPU 내부의 트랜지스터는 전기신호(전압)로 이진 데이터 처리=> 0과 1은 사람이 이해하는 자연어이고 이를 전기신호로 변환하면서 CPU가 해석할 수 있게 됨 3. 왜 앱은 디스크에서 메모리로 로딩되어야 실행되는 건가요? ※ 파일은 소프트웨어만이 다룰 수 있는 단위 (CPU 기계는 다룰 수 없음)=> 소프트웨어 형태를 하드.. [인강/CS 지식의 정석] 1. 개발자 필수 지식 데이터 교환 방식JSON (JavaScript Object Notation): 자바스크립트 객체 문법으로 구조화된 데이터 교환 형식 특징1. 객체 문법 외에도 단순 배열, 문자열도 표현 가능2. 프로그래밍언어, 프레임워크에 독립적임 => 여러 언어에서 각 라이브러리에 의해 사용됨 ex) Java - JSONObject, Python - dict3. API 반환 형태, 시스템 설정파일에 활용됨 문법1. key : value 형식{ "name" : "Harry", "age" : 17}중괄호 내부 key 값 중복 시 마지막 key:value 만 남음 2. 배열a =[ { "name" : "Harry", "age" : 17 }, { "name" : "Ron", "age" :.. [인프콘 2022] 나도 내 코드의 문제를 찾고 싶다구요?! - 테스트 할 때 기억할 7가지 https://www.youtube.com/watch?v=QsD1hCzaGCU 외부 인터페이스(UI, API..)에서부터 테스트문제 원인 파악을 위해서는 내부 코드보다 외부 인터페이스부터 시작하는 것을 추천하다.내부 구현 코드부터 들여다보면 개인이 자율적으로 구현한 것이기 때문에 생각에 오류가 있는 채로 개발했을 수 있고 이때 원인을 제대로 파악하기 어렵다. 다른 개발자에게 설명할 때 다소 주관적으로, 감정적으로 설명하게 될 가능성이 크다.반대로 외부 인터페이스는 요청/응답한 객관적인 데이터 중심으로 소통하게 돼서 원인을 빠르게 좁혀나가기 쉽다. 1. 외부 인터페이스 모두 찾기2. 메시지 모두 찾기3. 메시지 전체 흐름 이해하기4. 기준을 갖고 테스트하기 사용자 관점에서 통합 테스트하기 테스트 꼭 진행.. [모두의 네트워크 기초] 7장 응용 계층 : 애플리케이션에 접속하는 단계 응용 계층의 역할: 사용자가 사용하는 애플리케이션(응용 프로그램)이 동작하는 곳 클라이언트가 서비스 요청하면 서버가 서비스 제공=> 데이터 전달을 위해 프로토콜이 사용됨 ex프로토콜내용포트 번호HTTP웹 사이트 접속80DNS이름 해석53FTP파일 전송20(데이터 전송)21(명령, 응답 제어)SMTP이메일 송신25POP3이메일 수신110 HTTP 프로토콜: 클라이언트, 서버가 어떻게 데이터를 교환할지 정한 규칙 (80번 포트) 문자 형태로 데이터가 전송되어 필요한 부분은 파싱(원하는 데이터를 특정 패턴, 순서로 추출해 가공)되어야 함 시작 라인헤더공백 (1줄)바디 ( ... ) 시작 라인HTTP메서드 경로 HTTP버전ex) GET /index.html HTTP/1.1H.. [모두의 네트워크 기초] 6장 전송 계층 : 오류 없이 데이터를 전달하는 단계 전송 계층의 역할혼잡 제어 (Congestion Control): 네트워크로 들어가는 정보량을 조절 => 네트워크가 혼잡해지지 않게 조절하는 방법 송신자 => 하나의 데이터를 보내고 수신자 측에서 ACK 전송 시 전송량을 2배씩 증가시켜감Time Out 발생하거나 동일한 ACK 여러 번 수신 시 데이터를 줄여서 보냄 흐름 제어(≒ 데이터 링크 계층의 정지-대기 방식) 송신자 => 하나의 데이터 전송 후 ACK 응답을 받은 후에야 다음 데이터 보냄 오류 제어 오류 검출 방법확인 응답송신 후 수신자로부터 ACK를 받지 않으면 오류로 판단함시간 초과특정 시간 내에 ACK를 받지 않으면 세그먼트에 오류 발생한 것으로 판단함 데이터 재전송 필요한 상황데이터가 중간에 손실될 때데이터 순서가 바꼈을 때데이.. [goorm COMMIT] 더 나은 코드를 위한 켄트 벡의 Tidy First? 요약 노트유기체적 공진화서로 상호작용하며 함께 진화하는 현상 리팩토링 vs 코드 정리형태 같으나 의미, 목적 다름 (리팩토링 : 확장성, 유지보수성 등 구조 개선 / 코드 정리 : 가독성 개선에 중점) structure / behavior 변경 둘 중에 하나 선택해서 하기 (동시 x) 1시간 이상 소요되면 관련해서 갈등 발생할 수도 있어 문제가 됨 소프트웨어 = fractal하게, 점진적으로 소프트웨어 = 동작(외부, 현재 가치) + 설계(내부, 미래 가치) 결합 ⬆️ => 변화 발생 시 예상치 못한 결과 초래일대다, 연쇄 작용 유의해야 함의존성이나 관계는 피할 수 없음=> 결합도 줄이고 응집도 높이는 방법 계속 익히기 개발 문화 - 코딩 기술력 밀접한 연관 있음문화가 상명하복인데 좋은 기술, .. [모두의 네트워크 기초] 5장 네트워크 계층 : 목적지를 찾는 단계 네트워크 계층의 역할라우터: 데이터가 어떤 경로로 전달돼야 하는지 알려주는 역할 (≒ 내비) 가장 빠른 길을 찾는 과정 => 라우팅IP 주소로 통신함 (WAN 환경에서 공인 IP ↔ 라우터) IP 주소란?: 인터넷 상에 있는 컴퓨터의 고유한 주소 (Internet Protocol) 랜 환경에서 스위치를 이용해 MAC 주소로 통신함=> 인터넷에 바로 접속할 수 없고, 다른 회사 컴퓨터와 통신이 불가능함=> IP 주소 활용 IP 할당 과정 KT, SKT 등 ISP(Internet Service Provider, 인터넷 서비스 제공자)는 인터넷을 설치함→ ISP와 내 컴퓨터가 연결되고, 공인 IP(인터넷을 할 수 있는 IP 주소)가 부여됨 IP 종류 공인 IP: ISP에 의해 전세계적으로 고유하게 .. [Java] 대용량 엑셀파일 다운로드 (Sxssf, ResultHandler) 약 3주 간의 엑셀 다운로드 오류 해결, 개선 과정에 대한 포스팅이다. 말로만 듣던 OOM을 직접 겪고 CPU와 메모리 점유율을 모니터링하면서 주요 로직을 왜 백엔드에 위치해야 하는지 직접 체감한 경험이 되었다. 😅 초기 코드 문제점 기존 코드는 전체 데이터 조회, 엑셀 출력 시 화면 단의 라이브러리를 활용했고, 페이징이나 스트리밍 방식이 적용되지 않았다. 이때 데이터 1개월 치(약 30만 건 데이터, 약 15MB)를 조회/출력하면 하단과 같은 현상이 발생했다. 조회 데이터 로딩 속도가 느리고 클라이언트의 CPU, 메모리 점유율이 증가함 => 페이징 없이 한번에 대용량 데이터를 불러오면서 메모리 위에 계속 누적되기 때문 출력 출력할 데이터가 메모리에 올라가는 동안 CPU, 메모리 점유율이 계속 상승하다가.. [당근 ML 밋업] LLM을 프로덕션에 적용하며 배운 것들 https://www.youtube.com/watch?v=NzxlIGPbICY 내용 활용중고거래 : 관련된 키워드로 추천, 광고 노출동네생활 :장소 이름 추출, 정보 제공동네생활 : 별도 해시태그 사용하지 않아도 해시태그 생성, 추천태그에 노출모임 : 모집하는 나이, 성별, 주제 기반 모임 추천부동산 : 복붙한 줄글을 인식하고 입력폼 자동 작성 실시간 LLM 파이프라인 TIP 1 : 프롬프트의 중요성프롬프트는 자연어로 작성돼 태생적으로 모호함띄어쓰기, 줄바꿈으로 결과가 달라지기도 함 TIP 2 : 반복된 실험, 평가1. 평가 데이터셋 마련하기중요한 엣지 케이스 포함, 보완 2. 자동화된 배치 평가 파이프라인 마련하기Task-specific MetricError / Invalid format Ra.. [NHN FORWARD 22] 클린 아키텍처 애매한 부분 정리해드립니다 https://www.youtube.com/watch?v=g6Tg6_qpIVc 정리 소프트웨어가 제공하는 가치 : 기능, 구조보통 기능>구조라고들 생각하지만 로버트 C 마틴은 "구조 > 기능"이라고 함기능은 구조에 의지함 소프트웨어 아키텍처의 목표시스템을 만들고 유지보수하는 인력을 최소화하는 것 좋은 아키텍처= 수정 쉬움 = 수정하는 비용 적음 좋은 아키텍처 만드는 방법패러다임설계원칙(SOLID)컴포넌트 응집성 원칙컴포넌트 결합 원칙 아키텍처 패턴계층형, 클린, 헥사고날 등 패키지 구조 클린 아키텍처는 애매하다하나의 다이어그램으로 정의되지 않음수많은 원칙, 실천법으로 구성됨 클린 아키텍처를 구성하기 위한 핵심 규칙은 2개뿐1. 중요도에 따라 계층을 나눈다.2. 의존성은 내부, 고수준을 향한다.. 이전 1 2 3 4 ··· 26 다음