본문 바로가기

개발관련 책

Effective java 정복기 1장 목표- 취뽀 기념 실무코드컨벤션을 잘 지키기위해 , 더 효율적인 코드를 작성하기위해 Effective java 정복기목차· 1장· 2장· 3장· 4장· 5장· 6장· 7장· 8장· 9장· 10장· 11장· 12장   1장 아이템_01 생성자 대신 정적 팩터리 메소드를 고려하라장점 1 : 생성자 자체는 생성되는 객체의 특성을 직관적으로 설명하지 않는다. 하지만 정적팩토리메소드를 사용하게 되면이름을 가질 수 있다.public static Position createStartPosition(){ return new Position(START_POSITION_VALUE);}Position position=Position.createStartPosition(); 장점 2 : Static을 사용하게 되면 클래스레벨.. 더보기
Java Stream map,foreach 차이 및 예제 목차· 왜 map과 foreach의 차이점에 대해 알아보게되었을까?· map과 foreach 무슨차이가 있을까?· 결론 왜 map과 foreach의 차이점에 대해 알아보게 되었을까? 4월부터 시작한 인턴생활, 파일럿프로젝트에서 매일 저녁 8시마다 파이어베이스 알림을 보내주는 스케줄러를 구현했고 테스트 서버에 올려두었다. 하지만 8시가 지나도 알림이 발생하지않았다. 뭐지뭐지.. 어리둥절하다가 결국 스케줄러 내부 메소드를 뜯어보게 되었고 map이 문제였었다. map과 foreach는 무슨차이가 있을까? 작동을 하지 않았던 코드List plantList = plantRepository.findAll(); plantList.stream().map(plant -> { if(plan.. 더보기
면접을 위한 CS 전공지식 노트 4장 데이터베이스 데이터베이스 기본 데이터베이스는 일정한 규칙,혹은 규악을 통해 구조화되어 저장되는 데이터의 모음. 해당 데이터베이스를 제어 , 관리하는 통합 시스템을 DBMS라고하며 , 데이터베이스 안에 있는 데이터들은 특정 DBMS마다 정의된 쿼리 언어를 통해 삽입,삭제,조회 등을 수행할 수 있다. 또한 데이터베이스는 실시간 접근과 동시 공유가 가능합니다. 엔티티란 ? 사람 ,장소,물건,사건,개념 여러개의 속성을 지닌 명사를 의미 예) 회원 엔티티 : 이름,아이디,주소,전화번호 속성을 갖습니다. 약한 엔터티와 강한 엔터티란 ? 예를 들어 A가 혼자서는 존재하지 못하고 B의 존재 여부에 따라 종속적이라면 A는 약한 엔터티이고 B는 강한 엔터티가 됩니다. 예) 방은 건물안에만 존재할 수 있기떄문에 방은 약개체.. 더보기
면접을 위한 CS 전공지식 노트 5장 자료구조란? 효율적으로 데이터를 관리하고 수정 , 삭제 , 탐색 ,저장할 수 있는 데이터 집합 C++는 STL을 기반으로 전반적인 자료구조를 가장 잘 설명할 수 있는 언어 STL 이란 ? C++의 표준템플릿 라이브러리이자 스택,배열 등 데이터 구조의 함수 등을 제공하는 라이브러리의 묶음 시간복잡도 - 빅오표기법 으로 표기를 하며 , 입력 크기에 대해 어떠한 알고리즘이 실행되는 데 걸리는 시간입니다. 주요 로직의 반복 횟수를 중점으로 츨정되며, 보통 빅오 표기법으로 나타냅니다 예를 들어 "입력크기 n"의 모든 입력에 대한 알고리즘에 필요한 시간이 n^2이라고 하면 이중 for문을 생각하면된다. 이것을 빅오표기법으로 표기하면 O(n^2)으로 표기한다. 가장 영향을 많이 끼치는 항의 상수 인자를 빼고 나머지 .. 더보기
면접을 위한 CS 전공지식 노트 2장 네트워크 기초 네트워크란 노드와 링크가 서로 연결되어 있거나 연결되어 있으며 리소스를 공유하는 집합, 여기서 노드는 서버,라우터,스위치 등 네트워크 장치를 의미하고 링크는 유선 또는 무선을 의미합니다. 처리량과 지연 시간 네트워크를 구축할 때 "좋은: 네트워크로 만드는 것이 중요합니다. 좋은 네트워크란 많은 처리량을 처리할 수 있으며 지연시간이 짧고 장애 빈도가 적으며 좋은 보안을 갖춘 네트워크를 말합니다. 처리량 - 처리량은 링크 내에서 성공적으로 전달된 데이터의 양을 말하며 보통 얼만큼의 트래픽을 처리했는지를 나타냅니다. "많은 트래픽을 처리한다= 많은 처리량을 가진다" 단위로는 bps(bits per second)를 씁니다. 초당 전송 또는 수신되는 비트 수라는 의미입니다. 처리량은 사용자들이 많은.. 더보기
면접을 위한 CS 전공지식 노트 1장 디자인 패턴과 프로그래밍 패러다임 라이브러리 - 공통으로 사용될 수 있는 특정한 기능들을 모듈화한 것을 의미한다. 프레임워크에 비해 자유롭다. 프레임워크 - 공통으로 사용될 수 있는 특정한 기능들을 모듈화한 것을 의미한다.폴더명,파림여 등에 대한 규칙이 있으며 라이브러리에 비해 좀 더 엄격하다. 디자인 패턴이란? - 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호관계 등의 이용하여 해결할 수 있도록 하나의 "규약" 형태로 만들어놓은 것 입니다. 1. 싱글톤 패턴 - 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴, 하나의 클래스를 기반을 여러개의 개별적인 인스턴스를 만들 수 있지만, 그렇지게하지않고 하나의 클래스를 기반으로 단 하나의 인스턴스를 만들어 이를 기반으로 로직을 만드는데 쓰이며 ,.. 더보기
clean code 3장 요약 3장 함수 함수를 만드는 첫번 째 규칙은 "작게" 다 . 함수를 만드는 둘째 규칙은 "더 작게"다. service 로직에서이나 보통 도메인주도설계를하시는분은 Entity안에서 로직을 작성하시곤 하는데 함수가 가지고있는 의미있는 이름을 갖고 함수를 자잘자잘하게 짜르고 명확한 이름을 가지고 작성하는 것이 중요한 것 같다. 블록과 들여쓰기 if 문/else 문/while 문 등에 들어가는 블록은 한 줄이어야 한다. => 중첩 구조가 생길만큼 함수가 커져서는 안 된다 => 함수에서 들여쓰기 수준은 1단이나 2단을 넘어서면 안 된다. 한 가지만 해라! 함수는 한 가지를 해야한다. 그 한 가지를 잘 해야 한다. 그 한가지만을 해야한다. 지정된 함수 이름 아래에서 추상화 수준이 하나인 단계만 수행해야함 의미 있는 이.. 더보기
clean code 2장 요약 sw마에스트로에서 여러 사람들이 많이 주문한 책이고 개발자는 거의 필수코스라고봐도 무방할 정도로 사람들이 많이 읽는다. 좀 오래 걸리긴 했지만 읽은 것을 바탕으로 내용을 정리해보려고한다. 2장 의미있는 이름 의도를 분명히밝혀라 "의도가 분명하게 이름을 지으라" 이 부분은 정말 공감되는 부분이다 좋은이름으로 함수명 클래스명을 지으려면 시간이 걸리지만 좋은이름으로 절약하는 시간이 더 많아질 것이다. 변수나 함수 그리고 클래스 이름은 존재 이유, 수행 기능과 사용 방법과 같은 굶직한 질문에 모두 답해야 한다. 의미 있게 구분하라 - 읽는 사람이 차이를 알도록 이름을 지어라 - 컴파일러를 통과할지라도 연속된 숫자를 덧붙이거나 불용어를 추가하는 방식은 적절하지 못하다. 이름이 달라야한다면 의미도 달라져야한다. -.. 더보기