분류 전체보기
-
Java의 변천사, 추가된 기능은 무엇일까?프로그래밍 언어/JAVA 2022. 10. 2. 23:31
우리 회사는 최신 기술, 버젼 업데이트에 대해 우호적으로 반응하고 우리에게 좋은 인사이트를 줄 수 있는 것이라면 적용하는 편이다. 내가 회사에 입사했을 때에는 Javs SDK11버전을 사용 중이였고 17버전이 나온지 얼마 안 된 시기였다. 그러고 입사 한 달쯤 되었을 때에 17버전를 적용했다. 내가 Java17버전을 사용 중에 있지만 보통 흔히 java서적이나 강의에서 접하는 java8버전과 비교하였을 때에 어떠한 피쳐가 추가되었는지, 쓸만한 기능인지는 알아보지 못했기에 이번 기회에 알아보고 정리해보고자 한다. 1. Text Blocks 기존에 한 줄의 텍스트가 아닌 여러 줄의 텍스트를 작성할 때에는 아래와 같이 작성해야했다. String text = "{\n" + " \"name\": \"John Do..
-
[JAVA] 인터페이스 default method (java 8)프로그래밍 언어/JAVA 2022. 9. 4. 21:52
오늘은 java 8에서 추가된 기능 중 하나인 인터페이스에서의 default method에 대해 정리해보려고 한다. 현재 java의 최신 LTS버전은 17이지만 8버전 때의 업데이트에서는 다양한 기능들이 추가되었었고 java의 기본적인 공부를 할 때에 8버전 때에 추가된 기능들을 하나하나 알아보는 것도 중요하다고 생각한다. 왜 default method가 추가되었을까? - 오라클에서 제공하는 java 공식문서에서는 아래와 같은 예시를 들며 default method의 필요성을 설명했다. computer-controlled car 제조업체들이 자동차에 비행과 같은 새로운 기능을 추가한다면 어떠할까? computer-controlled car 제조업체들은 다른 회사가 자사의 소프트웨어를 하늘을 나는 자동차에..
-
[PostgreSQL] Date/Time TypesCS지식/데이터베이스 2022. 8. 6. 11:59
오늘은 회사 내에서 사용 중인 RDBMS, 그 중에서 PostgreSQL에서 제공하는 Date/Time Type들에 대해 정리해보려고 한다. 1. Date/Time Type 종류 PostgreSQL에서는 아래와 같이 6개의 타입을 제공한다. 여기서 p는 seconds(초)를 표현할 때에 소수점아래로 어디까지 표현할 것인가를 의미한다. 0~6까지의 값을 가질 수 있다. 그리고 interval에 보면 fields라는 값을 받는데 여기서 fields와 p 둘 다 명시하면 fields는 무조건 second를 포함한 값여야만 한다. YEAR, MONTH, DAY, HOUR, MINUTE, SECOND, YEAR TO MONTH, DAY TO HOUR, DAY TO MINUTE, DAY TO SECOND, HOUR..
-
[디자인패턴] 전략 패턴기타/북스터디 2022. 7. 10. 12:46
오늘은 디자인패턴 중 하나인 전략 패턴에 대해 정리해보려고 한다. 전략 패턴이란, 알고리즘군을 정의하고 캡슐화해서 각가의 알고리즘군을 수정해서 쓸 수 있게 해주는 패턴으로 클라이언트로부터 알고리즘을 분리해서 독립적으로 변경을 할 수 있게 해준다. 전략 패턴을 적용하는 과정을 아래 예시를 보며 이해해보자. 여러 종류의 캐릭터가 존재하는 액션 어드벤쳐 게임을 만든다고 생각해보자. 너무 상세하게 설계과정을 나열하다보면 글이 길어질 수 있어 시작은 추상클래스로 공통된 부분을 캡슐화하고 상속받는 구조로 시작하자. 여기까지는 Character라는 슈퍼클래스를 상속받는 Knight와 Queen이라는 서브클래스가 있는 구조이고 기능을 추가하기 위해 무기를 가지고 싸우는 행동을 추가하기로 했다. 무기를 가지고 싸우는 행..
-
함수형 인터페이스프로그래밍 언어/JAVA 2022. 6. 26. 01:32
함수형 인터페이스 함수형 인터페이스는 java 8이전부터 있던 기능?(기능이라고 말할 것까지는 아니지만...)이지만 특정한 조건을 만족시키는 인터페이스를 함수형 인터페이스라고 한다. 그 전에, 인터페이스가 무엇인지 간단하게 정리해보고 넘어가자. 인터페이스(Interface)란, 다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할까지 담당하는 일종의 추상 클래스를 의미한다. 일반적인 부모 클래스와의 다른점은 인터페이스는 인터페이스의 메소드를 반드시 구현해야 하는 "강제성"을 갖는다. 추상 클래스와의 다른점은 추상 클래스는 extends 키워드를 사용하여 상속하며, 다중 상속은 불가능합니다. 반면 인터페이스는 implements 키워드를 사용하여 상속하며, 다중 상속이..
-
Test Driven Development By Example 2부 정리기타/북스터디 2022. 6. 4. 00:07
xUnit 예시 테스트를 위한 도구 구현하기 1. xUnit으로 가는 첫걸음 첫 번째 작은 단계는 아직 프레임워크가 없기때문에 테스트 케이스를 수동으로 검증하자. 두 번째는 테스트 프레임워크에 대한 할 일 목록 정리하기.테스트 메서드 호출하기setUp 호출하기 나중에 tearDwon 호출하기 테스트 메서드가 실패하더라도 tearDown 호출하기 수집된 결과를 출력하기 클래스를 정의하기 전에 테스트 코드부터 작성하기 테스트 코드가 초록 막대가 뜨게 클래스와 메서드를 정의하고 리팩토링 진행하기 리팩토링의 일반적인 패턴 하나의 특별한 사례에 대해서만 작동하는 코드를 가져다가 다른 여러 사례에 대해서도 작동할 수 있도록 상수를 변수로 변화시켜 일반화하는 것 질문 p.161: 자기참조 프로그래밍이 뭐지? p.16..
-
"최선"을 다하면 "최고"가 될 수 있을까?기타/일상 2022. 5. 29. 11:51
글또를 시작한 지 2주차, 2번째 글을 쓰는 날이다. 1번째 글을 쓰고 2주가 거의 다 될 쯤에 이번에는 어떠한 주제로 글을 쓸지 고민을 하다 마감날에 글을 쓰기 시작했다. 스터디를 통해 공부하는 내용들은 따로 정리하고 있는 장소가 있어 그 글을 워싱해서 정리하는 것은 효율적이지 않을 것같고 기술적인 내용을 정리하기에는 주제가 떠오르지 않아 2주동안 나는 어떠한 생각을 했고 어떻게 지냈는지를 정리해보려고 한다. 이 글의 제목을 "최선"을 다하면 "최고"가 될 수 있을까?로 선정한 이유부터 써보려고 한다. 일을 시작한 지 어느덧 4개월이 다 되가고 있는 시점이고 짧다고 생각하면 짧고 길다고 생각하면 긴 기간이다. 내가 참여했던 교육인 SW사관학교 정글에서의 교육목표는 "장기적으로 성장할 수 있는 정예 개발..
-
3개월 간의 Fit Test 종료, 그리고 새로운 도전의 시작기타/일상 2022. 5. 14. 18:09
2022년 5월 6일, 첫 회사에 입사한지 3개월이 지나간 날이고 fit test가 끝난 날이다. 우리 회사는 다른 회사들에서 흔히 수습기간으로 잡는 3개월동안에 fit test가 이루어진다. 서류, 코딩테스트, 2번의 면접을 통해 어느정도 성장가능성을 회사에서 보았기 때문에 신입 개발자로서 입사를 하게 되었지만 회사와 정말 fit이 맞는지를 보기에는 짧은 시간이다. 그렇기에 3개월동안 주어진 task들을 수행하면서 회사가 생각하는 개발자 페르소나 그리고 회사문화와 어울리는지 확인하는 시간을 가진다. 솔직히 3개월동안 굉장히 불안했고 스트레스도 엄청 받았던 시기였다. 비전공자이고 개발을 공부한 것이라고는 5개월, 물론 5개월 간 정말 몰입과 압축성장을 한 경험이 있지만 최소 대학교에서 4년동안 공부한 전..