전체 글
[서평] 테크 커리어 - 성공적인 기술 경력 관리법 책후기
연차도 점점 쌓이면서 어느 순간 나 개발자로서 잘하고 있는걸까..? 라는 경력에 대한 고민과 앞으로 미래에 대한 방향성이 모호해졌다. 좋은 기회로 `테크 커리어 - 성공적인 기술 경력` 이라는 책을 읽게 되었는데, 이 책에는 개발자로서 일상적인 업무를 처리하는 스킬과 자신의 브랜드를 조금 더 똑똑하게 관리하는법, 네트워크를 만들고 가꾸는 법, 가장 보탬이 될 기술 등 에 대한 도움이 되는 내용들이 있다. 목차는 1장부터 21장까지 다양한 파트로 구성되어 있고, 경력 전반으로 갈고 닦아야할 부분들에 대해 사례를 들어 설명이 되어있다. 각 장마다 실천할 수 있는 실천과제를 주어 각 장에서 다루는 소프트 스킬을 통달하는데 도움이 되는 단계를 제시해준다. 이 중에서 인상 깊었던 파트만 정리해보았다. 1장. 자신..
[Study] Real MySQL 8.0 - 9장(1) 옵티마이저와 힌트
9.1. 개요 쿼리를 최적으로 실행하기 위해 각 테이블의 데이터가 어떤 분포로 저장되어 있는지 통계 정보를 참조하며, 그러한 기본 데이터를 비교해 최적의 실행 계획을 수립하는 작업이 필요하다. 대부분의 DBMS에서는 '옵티마이저'가 이러한 기능을 담당한다. 쿼리의 실행 계획을 수립하는 옵티마이저는 가장 복잡한 부분으로 알려져 있다. 9.1.1 쿼리 실행 절차 MySQL 서버에서 쿼리가 실행되는 과정은 크게 아래 세단계로 나눠진다. 1. 사용자로부터 요청된 SQL 문장을 잘게 쪼개서 MySQL 서버가 이해할 수 있는 수준으로 분리(파스 트리)한다. 2. SQL의 파싱정보(파스 트리)를 확인하면서 어떤 테이블을 읽고 어떤 인덱스를 이용해 테이블을 읽을지 선택한다. 3. 두번째 단계에서 결정된 테이블의 읽기 ..
객체지향 설계 원칙, 트랜잭션 격리, 해쉬테이블
객체 지향 설계 원칙인 SOLID 원칙에 대해서 설명해주세요. 예시를 들어주세요. 객체지향 프로그래밍을 할때 지켜야할 5대 원칙을 말한다. 1. SRP(Single Responsibility Principle) 단일 책임의 원칙 하나의 클래스은 하나의 책임(기능)을 가져야 한다는 것 예시) 어떤 자동차 클래스가 있는데, 엔진, 히터 등등 복잡한 시스템이 있다 class car { // 여기에 모두 넣어버리면 복잡해짐 seat : 다른 클래스 불러옴(쪼갬) heater : 다른 클래스 불러옴(쪼갬) } => 이러한 복잡한 시스템을 여러개로 쪼개서 나누고 하나로 묶는 것 2. OCP(Open Close Principle) 개방 폐쇄의 원칙 확장에는 열려있고, 수정에는 닫혀있어야 한다는 원칙 확장 - 요구사항..
공인ip, 사설ip, nat, 프록시서버, DHCP
1. 공인 ip 와 사설 ip의 차이는 무엇일까요? nat 는 무슨 역할을 할까요? ip (Internet Protocol address) 이란? 컴퓨터와 연결된 네트워크 주소 기기가 인터넷에 접속한 곳의 네트워크 상 위치 인터넷 전체에서 서로 다른 기기들을 구분하기 위한 구분자! ip 는 변동함 IPv4 : 0.0.0.0부터 255.255.255.255까지 (일반적 사용) IPv6 : IPv4 주소 부족으로 인한 주소길이 늘림 공유기 기기에서 한 공인 ip아래 기기마다 사설 ip 부여되는 식으로 인터넷 사용 공인 ip : 외부로 노출되는 ip | 네이버, 구글 > ip 주소 확인 검색 사설 ip : 내부에서 사용하는 ip | 윈도우 > ipconfig 사설 ip 주소 범위 사설ip -> 공인ip 로 접..
CDN, CORS, 배포 인프라
1. CDN이란? - CDN 정의, 작동방식, etc (Option) Edge 서버 CDN(Content Delivery Network) 이란? 콘텐츠 전송 네트워크 지리, 물리적으로 떨어진 사용자에게 컨텐츠(그래픽, 이미지, 동영상 파일 등)를 더욱 빠르게 제공할 수 있는 기술 세계 각지에서 한 국가의 서버로 접속할때 느린 응답속도와 다운로드 타임을 극복하기 위해 나온 분산 기술 컨텐츠 전달에 특화 본사 미국(예. 넷플릭스, 유투브 등등)로 부터 한국, 캐나다, 호주 등등 의 다른 나라에서 서버를 받아 온다면, 굉장히 속도가 느림!!! 오리진 서버로 부터 각 지역마다 캐시 서버를 두고 해당 컨텐츠 등을 실시간으로 공유하거나 타임별로 저장하고 , 컨텐츠를 본사에 요청할 경우 CDN을 통해서 해당 캐쉬 ..
Rest api, 클러스터형 vs Non클러스터형, 가비지콜렉터
Rest api 설명 다른 사람들이 이해하기 어렵다 명확한 패턴이 없다 URL 에는 동사를 쓸 수없다 -> 명사로 구분해야함(add, create, delete...CRUD) uniform interface 스타일 1. 자원에 대한 식별 - 자원은 객체 (자원 = URI) 상태는 변화 가능 -> 변하지 않는 식별자 필요 고유한 식별자로 URI를 통해 자원을 식별해야한다 식별자를 통해 특정한 데이터를 지정할 수 있다 (영화에 대한 정보면 movies로 자원을 지정) 2. 표현을 통한 자원에 대한 조작 - 특정한 상태의 자원에 대한 표현 자원은 다양한 방식으로 표현 가능 자원 : 해당 소프트웨어가 관리하는 모든 것 문서, 그림, 데이터 ... 등등 클라이언트 서버 자원의 상태 정보를 전달한다 - 보통 jso..
[프로그래머스/Level1] 모의고사 - Java
https://school.programmers.co.kr/learn/courses/30/lessons/42840 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📄 문제 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍..
[log4j2, Logback] 로깅 라이브러리
로깅 라이브러리 스프링 부트 라이브러리를 사용하면 스프링 부트 로깅 라이브러리( spring-boot-starter-logging )가 함께 포함된다. 스프링 부트 로깅 라이브러리는 기본으로 다음 로깅 라이브러리를 사용한다. SLF4J - http://www.slf4j.org Logback - http://logback.qos.ch 로그 라이브러리는 Logback, Log4J, Log4J2 등등 수 많은 라이브러리가 있는데, 그것을 통합해서 인터페이스로 제공하는 것이 바로 SLF4J 라이브러리다. 쉽게 이야기해서 SLF4J는 인터페이스이고, 그 구현체로 Logback 같은 로그 라이브러리를 선택하면 된다. 실무에서는 스프링 부트가 기본으로 제공하는 Logback을 대부분 사용한다. 로그 선언하는 두가지 ..