일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Effective Java
- 스프링 핵심원리
- Spring
- 자바
- JavaScript
- 김영한
- Effective Java 3
- 스프링
- 클린아키텍처
- 오블완
- 코딩테스트
- 이펙티브자바
- 스프링부트
- 이차전지관련주
- 예제로 배우는 스프링 입문
- java
- 스프링핵심원리
- 엘라스틱서치
- kubernetes
- effectivejava
- 자바스크립트
- 알고리즘
- 카카오
- Sort
- 티스토리챌린지
- k8s
- ElasticSearch
- 카카오 면접
- 알고리즘정렬
- 이펙티브 자바
- Today
- Total
목록전체 글 (157)
Kim-Baek 개발자 이야기

2020 신입 개발자 블라인드 채용 @카카오 의 채용이 시작되었네요! 2021.08~2021.09.06 까지 지원이니 다음주 일요일에 마감! 본격적으로 하반기 공개채용이 시작된 것 같아요 채용 절차 이번 카카오 신입 채용 절차 역시 이전 채용절차와 크게 다르지 않습니다. 모집회사 카카오 뿐만 아니라 카카오게임즈, 모빌리티, 엔터테이먼트, 엔터프라이즈, 커머스, 페이 총 7개의 회사에서 채용을 하네요! 특히 이번 채용은 OOO 명 3자리수 채용을 한다고하는데요! 전형 일정 2017년부터 시작한 블라인드 채용으로 학력, 전공, 나이, 성별 등 정보를 적지 않는 블라인드 채용 방식입니다! 직무(분야) 카카오의 경우 Programming, Infra/DB/보안 분야를 나눠서 모집하고 있네요 1. Programm..

NextStep 이라는 교육 플랫폼에서 TDD, Clean Code With Java 라는 수업을 들으면서 정말로 많은 것들을 배우고 있다. 내가 자바를 제대로 쓰고 있었던게 맞나...? 라는 의문이 들정도로 내가 고쳐야될 것이 정말 많다는 것을 느끼는 중이다. 이 과정을 통해서 배우는 것들을 정리하고, 계속 봐야겠다는 생각을 하며 포스팅을 해보고자 한다 :) 객체지향 생활 체조 원칙? 소트웍스 앤솔러지라는 책에서 나오는 9가지 원칙이라고 한다. 클린코드를 위한 원칙이라고 생각하면 되는데, 상당히 구체적인 내용이라서 이해하기가 쉽다. 규칙 1: 한 메서드에 오직 한 단계의 들여쓰기(indent)만 한다. 규칙 2: else 예약어를 쓰지 않는다. 규칙 3: 모든 원시값과 문자열을 포장한다. 규칙 4: 한..

오늘은 대학생때 IT기업 취업 준비를 하면서 실제로 했던 꿀팁을 공유하려고 합니다. 실제 많은 IT회사에 면접을 보거나 자기소개서 양식을 작성 할 때, Github 이나 블로그 링크를 첨부하는 곳들이 많이 있습니다. 하지만, 저 같은 경우는 대학생시절.... 학교에서 Github이라는 오픈소스 플랫폼을 사용해보적이 1번도 없었던 저에게 너무나도 생소했었죠... (개발 프로젝트를 하면서 *.zip 파일을 카톡으로 서로 공유했던 기억이...ㅠㅠㅠ) 물론 좋은 프로젝트 기회와 대학생때 대외활동으로 Git / Github을 사용하는 선후배 들도 있었지만, 대부분의 제 동기들과 주변 친구들은 Gitgub과 Git을 쓰는 방법을 몰랐어요. 하지만, 현업에서 일을 해보니 거의 Github이라는 플랫폼은 필수적인걸 느..

오늘은 지금 가장 핫한 오픈소스를 알아보는 저만의 Tip을 공유해드릴까해요. 개발 면접을 하다보면, 지금 관심있는 기술 / 트랜드에 대한 질문을 종종 받곤 하는데요. 지금 내가 회사에서 사용하고 있는 기술 셋, 관심 있는 기술 셋도 중요하지만 가장 핫하고 다른 사람들이 사용하고 관심있는 오픈소스는 무엇일까요? 개인적으로 Github 을 정말 많이 사용하는데요! 일반적인 버전 형상관리, 코드, 이슈 관리 이외에 모든 오픈소스 코드들이 거의 실시간으로 계속 update 되고 있어요. 그렇다면, 지금 가장 핫한! github 오픈소스 프로젝트는 무엇일까요?? 저는 Github Trending Repository 기능을 추천드려요! 구글에 "trending repositories github" 을 검색해서 gi..
Jpa를 사용하다가, entity를 repository를 통해서 삭제했는데 DB에 값이 남아있고 삭제가 되지 않는 경우가 있다. 어떤 경우인지 우선 살펴보겠다. 첫 번째로 유저 엔티티이다. @Entity public class Users implements Serializable { @Id @GeneratedValue private long id; private String name; @OneToMany(mappedBy = "user", fetch = FetchType.EAGER, cascade = {CascadeType.ALL}) private Set userRoleUser; // GETTERS AND SETTERS } 두 번째로 유저 롤 엔티티이다. @Entity public class UserRol..

IT기업의 신입 채용을 위해 코딩 테스트 준비를 정말 많이 했었다. 인적성, NCS와 같은 필기테스트 공부는 거의 하지 않고 오로지 코딩테스트 알고리즘 공부만 했던 기억이 난다. 대학생때는 백준 온라인 저지 사이트의 알고리즘 문제를 풀었었다. 알고리즘 문제가 익숙하지 않던 대학생에게 한글로 된 문제와 사이트가 알고리즘 문제의 거부감을 많이 없애줬던 것 같다. 문제를 풀어볼수록 잘 하고 있나에 대한 의구심과 실력이 늘고있다는 느낌을 못받았었던 것 같다. 하지만 코딩테스트 시험을 보거나 알고리즘 테스트를 하다보면, 많이 성장했던 것을 느꼈던 것 같다. 대학생때는 C++로 알고리즘 문제를 풀었었는데, C++ 언어의 특별한 자신감이 있다거나 잘 아는 것은 아니였지만 그저 알고리즘 문제를 위해서 C++를 공부하고..

일반적으로 회사에서 업무를 하면 Git 을 사용하는 경우가 가장 많다. 본인이 작업한 내용을 push 하고 merge까지 하려고 하면, 다른 사람이 작업한 내용과 conflicts 가 나는 경우가 있다. 최근 Github 에서는 충돌이 났을 때, 간단한 충돌의 경우 웹 상에서 해결할 수 있는 기능이 존재한다. [Github Web 에서 충돌 해결] Merge를 하려고 보면 저렇게 충돌이 났다고 나오고, Resolve conflicts 버튼이 활성화 된다. 이 버튼을 누른다. 그러면 아래와 같이 충돌난 부분의 소스코드가 나온다. 이 부분을 고치고, 체크하면 Github 웹 상에서 바로 충돌의 해결이 가능하다. [Git 명령어로 충돌 해결] 모든 경우에 웹으로 되는 것이 아니기 때문에, 명령어로 충돌을 해결..

스칼라에 대해서 이야기 해보려고 한다 이전 포스트에서 Spark 의 구조에 대한 설명을 했는데 Spark 코드를 주로 Scala로 많이 작성한 것들을 봤었다 Scala 무엇일까?? Functional Programming 언어로 많이 불린다. Scala lets you write code in an object-oriented programming (OOP) style, a functional programming (FP) style, and even in a hybrid style, using both approaches in combination. 스칼라는 또한 객체지향적인 (OOP) 프로그래밍도 가능하고 함수형 프로그래밍(FP) 프로그래밍도 가능하다 Scala 공식 문서에는 Hybrid Style?..

오늘 Apach Spark 에 대해서 공부해보려고 합니다. Apach Spark 는 In memory 방식의 대용량 데이처 처리 엔진입니다 Java, Scala, Python, R 과 같은 high level API 를 제공하고 있고, 특히 Spark SQL 같은 SQL을 위한 다양한 라이브러리를 제공하고 있습니다. 분산 클러스터 컴퓨팅 프레임워크로 Standalone 환경 뿐만 아니라 Cluster mode를 통해 대용량 데이터 처리가 가능합니다 특징 스파크는 인메모리 (In Memory) 기반 처리로 빠른 처리가 가능하며 Cluster Manger를 활용해 분산환경에서도 처리가 가능합니다. YARN, Mesos, Kubernetes 등 다양한 클러스터에서 동작이 가능합니다 기존 대용량 처리 프레임워크..

브라우저에서 html을 그리기 위해서 여러 가지 과정이 있다는 것을 알고 있었지만 정확하게 알지 못했는데, 렌더 트리가 어떻게 그려지고, 어떤 과정인지를 정확하게 설명하고 있는 내용이다. 브라우저의 핵심 기능은 사용자가 참조하고자 하는 웹페이지를 서버에 요청(Request)하고 서버의 응답(Response)을 받아 브라우저에 표시하는 것이다. 브라우저는 서버로부터 HTML, CSS, Javascript, 이미지 파일 등을 응답받는다. HTML, CSS 파일은 렌더링 엔진의 HTML 파서와 CSS 파서에 의해 파싱(Parsing)되어 DOM, CSSOM 트리로 변환되고 렌더 트리로 결합된다. 이렇게 생성된 렌더 트리를 기반으로 브라우저는 웹페이지를 표시한다. 클라이언트 (브라우저) 를 보면 렌더링엔진과 자..

프론트엔드 관련 테스트를 하면서, 항상 사용했던 것이 브라우저의 개발자 도구이다. 개발자 도구를 통해서 어떤 행동을 할 수 있을지를 아래에서 설명한다. 1.1 개발자 도구 크롬 브라우저가 제공하는 개발자 도구(DevTools)은 자바스크립트 개발에 필수적인 강력한 도구이다. 개발자 도구는 브라우저에 기본 내장되어 있으므로 별도의 설치가 필요없다. 개발자 도구는 아래의 단축키로 오픈할 수 있다. 단축키 Windows F12 또는 Ctrl + Shift + I macOS command ⌘ + option ⌥ + I 예전에 프론트엔드를 개발할 때 가장 어려운 것이 무엇일까요? 라는 질문을 들은 적이 있다. 그 때의 나는 디버깅이 아닐까요 라고 대답을 했던 것 같다. 사실 프론트엔드의 디버깅을 내가 잘 할 줄 ..

- Type 통일 : 부모타입에 자식객체를 모두 대입가능 상속 -> 다형성 + overriding -> abstract -> Interface - 코드 재사용 -> 타입통일 : 다형성을 위해 사용이 된다. ※ 객체와의 좋은 관계 1. high cohesion (높은 집중도) (하나의 클래스가 하나의 일만 하자) : 단일 책임 2. loose coupling (느슨한 연결) - 관계가 깊을수록 다른 쪽에 영향을 끼칠 가능성이 많다. ◎ 내부 class (Nested class, inner class) - JDK 1.1 에서 추가되었다. GUI에 대한 것이 많이 바뀌게 되었는데, 그것을 지원하기 위해 나오게 되었다. class A{ class B{ } -> class 안에 class를 정의 -> 외부 cla..
POST post 메서드는 기존에 알고있던대로 등록에 관한 내용이다. http 메세지로 넘어온 엔티티를 새로운 자원으로 등록한다. 새로운 자원으로 등록하지않을 수도있는데 이런 경우엔 200(ok)이나 204(no content) response code로 응답한다. 새로운 자원으로 만들어진 경우에는 201(created) response code로 응답하며 신규 생성된 자원의 위치를 헤더에 포함해야한다. 무슨 말이냐하면 예를들어 게시판에 새로 게시물을 등록하면 이를 따라갈수있는 위치를 응답 헤더에 넣어야한다는 의미다. 201 created Location: /board/2 PUT post와 가장 큰차이는 put 메서드는 자원의 식별자를 이미 알고있는 상태여야한다는 점이다. put 메서드는 식별자의 자원을..

- 웹 서버 (Web Server) 클라이언트가 서버에 페이지 요청을 하면 요청을 받아 정적 컨텐츠(.html, .png, .css등)를 제공하는 서버 클라이언트에서 요청이 올 때 가장 앞에서 요청에 대한 처리를 한다. 클라이언트의 요청을 기다리고 요청에 대한 데이터를 만들어서 응답하는 역할 (정적 데이터) CASE 정적 컨텐츠를 요청(request)했나? 1. 정적 컨텐츠구나! 내가 제공해줄게 => .html, .png 등 응답(response) 2. 정적 컨텐츠가 아니구나.. 웹서버에서 간단히 처리 못하겠군. WAS에게 처리를 부탁해야겠다! => 결국 WAS가 처리해준 컨텐츠를 받은 웹서버는 응답(response)을 해줌 대표 : Apache, nginx - WAS (Web Application Se..
"브라우저에 도메인을 입력하면 → DNS서버에 IP주소를 요청 → 수신한 IP주소에 해당하는 웹서버에 접속" 1. 로컬PC의 hosts파일 확인 ( 브라우저에 캐싱되어 있는지 먼저 확인하자 ) 로컬PC의 C:\Windows\System32\drivers\etc 경로(윈도우 설치 경로에 따라 조금 차이가 있을 수 있음)에는 hosts라는 파일이 있다. 이 파일을 메모장으로 열어보면, IP주소와 도메인 주소를 설정할 수가 있다. 이 파일은 PC의 자체 DNS역할을 하며, 브라우저는 가장 먼저 이 파일을 확인하여 입력한 도메인의 매핑정보가 존재하는지 확인한다. 2. DHCP&ARP 대부분 가정집에서는 DHCP로 인터넷 접속을 하고 있을 것이다. DHCP는 Dynamic Host Configuration Pro..

제 2정규화를 수행 했을 경우 테이블의 모든 컬럼이 완전 함수적 종속을 만족한다.(부분 함수적 종속을 모두 제거되었다.) 이를 이해하기 위해서는 부분 함수적 종속과 완전 함수적 종속이라는 용어를 알아야 한다. 함수적 종속: X의 값에 따라 Y값이 결정될 때 X -> Y로 표현하는데, 이를 Y는 X에 대해 함수적 종속 이라고 한다. 예를 들어 학번을 알면 이름을 알 수 있는데, 이 경우엔 학번이 X가 되고 이름이 Y가 된다. X를 결정자이라고 하고, Y는 종속자라고 한다. 다른 말로 X가 바뀌었을 경우 Y가 바뀌어야만 한다는 것을 의미한다. 함수적 종속에서 X의 값이 여러 요소일 경우, 즉, {X1, X2} -> Y일 경우, X1와 X2가 Y의 값을 결정할 때 이를 완전 함수적 종속이라고 하고, X1, X..