본문 바로가기
반응형

분류 전체보기714

mutable vs immutable 개요자바의 클래스는 mutable과 immutable 2가지가 존재합니다. 2개의 차이점을 알아보겠습니다.  mutable과 immutable 사전의 의미를 먼저 확인해보겠습니다. mutable은 '변할 수 있는', immutable은 '변경할 수 없는, 불변의'의 뜻을 가지고 있습니다. 이를 Java 관점에서 본다면 mutable 객체는 초기화 된 이후 '변할 수 있는' 객체이고, immutable 객체는 초기화된 이후 '변경할 수 없는' 객체입니다.   mutable  mutable 객체는 초기화 된 이후에 필드, 상태 등 값을 변경할 수 있습니다. 새로운 객체가 생성되는 것이 아니고 현재 객체의 값을 변경합니다. mutable 객체들은 getter와 setter 사용이 가능합니다. Java.util.. 2022. 11. 1.
StringBuffer vs StringBuilder 개요자바는 연속되는 문자열을 표현하기 위한 3가지 클래스가 있은데, String, StringBuffer, StringBuilder입니다. 3가지의 차이점을 비교해보겠습니다.  String과의 차이점String은 immutable 클래스StringBuffer와 StringBuilder는 mutable 클래스 StringBuffer vs StringBuilderNoStringBufferStringBuilder1)동기화되어 thread-safe(여러개의 쓰레드가 StringBuffer 메서드를 동시에 접근할 수 없다)동기화되지 않아 쓰레드에 안전하지 않음(여러개의 쓰레드가 StringBuilder 메서드를 동시에 접근할 수 있다)2)Java 1.0에서 등장Java 1.5에서 등장3)동기화 때문에 상대적으로 .. 2022. 11. 1.
Java 8에 등장한 Optional이란? 개요 Java 8에 Optional이 새로 등장했습니다. 어떤 문법인지 어떤 경우에 사용하는지 정리합니다. 코드 가독성을 높이고 널 포인트 예외를 방어해보자 널(Null)은 값이 없음을 가리키며 널 참조는 많은 문제의 원인이 됩니다. 따라서 Java 8에서는 이런 문제점을 일부 해결하기 위해서 java.util.Optional을 만들었습니다. 다음과 같은 코드가 있다고 가정해보겠습니다. String version = computer.getSoundcard().getUSB().getVersion(); 코드에는 문제가 없지만 많은 컴퓨터는 사운드 카드를 가지고 있지 않습니다. 그렇다면 getSoundcard()는 어떻게 될까요? 대게의 경우 null을 리턴해서 사운드 카드가 없다는 것을 가리켰습니다. 불행히.. 2022. 10. 29.
자바 8에 추가된 Date Time API 개요 자바 8의 변화 중 Date와 Time이 새롭게 추가되었습니다. 기존에 어떤 방식을 사용하였고, 어떻게 개선되었는지 확인해보겠습니다. 기존의 Date API와 새로운 API 기존의 Date API는 java.util에 속해 있습니다. java.util.Date - 날짜와 시간, 기본 시간대를 사용하여 출력 java.util.Calendar - 날짜와 시간, 날짜를 조작하는데 더 많은 메소드 제공 java.text.SimpleDateFormat - 날짜와 달력을위한 형식 (날짜 -> 텍스트), 변환 (텍스트 -> 날짜) 자바 8에서는 JSR310(Joda-time을 참고)이 새로 만들어졌으며 java.time 패키지에 담겨 있습니다. java.time.LocalDate - 날짜(시간 포함하지 않음),.. 2022. 10. 28.
TIL_20221027 1. Facts(사실, 객관) - 영업지원 페이지 어드민 만들기 - e지로 개발 - 자바 기반의 마이크로 서비스 이해와 아키텍쳐 구축하기 끝 2. Feelings(느낌, 주관) 영업지원 페이지 어드민을 개발하고 있습니다. 엔지니어는 자신의 핸드폰에서 정기전단물, 홍보자료를 고객에게 전송하는 화면을 만들려고 합니다. 그 때, 엔지니어에게 보일 문구나, 파일명이나 계층 구도 등을 현업이 직접 추가 및 수정, 삭제 할 수 있도록 어드민 페이지를 만들었습니다. 테이블을 새로 설계하고 각 화면에 어드민 페이지를 만들어서 유동적으로 사용할 수 있도록 만들었습니다. 일단 화면을 먼저 만드는 것을 목표로 하였고, 내일부터는 세부 기능을 추가 할 계획입니다. e지로 전송 SQL을 짰습니다. 또한, 전달받은 화면 개선 건.. 2022. 10. 28.
TIL_20221025 1. Facts(사실, 객관) - A/S 공지사항 오픈 - 홈페이지 전환 코드 커밋 완료 - 금형관리 입고수량 개선 - 자바 기반의 마이크로 서비스 이해와 아키텍쳐 구축하기 읽기 2. Feelings(느낌, 주관) - A/S 공지사항을 오픈했습니다. 개발을 완료하고 오픈 일정을 맞췄지만, 때로는 현업의 요청으로 연기되기도 합니다. 이를 예상하지 못하고 내용을 정리하지 않았더니 다시 기억을 찾아 오픈하는데 시간이 좀 들었습니다. 앞으로 작업을 하면 내용들을 간단히 남기는 습관을 가져야겠습니다. - 홈페이지 전환 코드 커밋 완료했습니다. 테스트서버에서는 테스트도 완료했습니다. 혹여나 놓친 부분이 있나 꼼꼼히 확인하였고 리다이렉트 설정, 상품 혹은 로그인 기능까지 모두 막도록 하였습니다. - 금형관리 입고수량.. 2022. 10. 26.
TIL_2022.10.21 1. Facts(사실, 객관) - 견적서 개발 2차 개선 - 개발자 글쓰기 읽고 정리 2. Feelings(느낌, 주관) 개발 개선을 할 때면, 다른 곳을 개발하다가 문제를 발견한 경우도 있습니다. 현업의 추가 요구사항과 다른 곳에서 발견한 수정된 요구사항까지 겹쳐져서 약 7 부분을 수정해야 했습니다. 이전에는 빠르게 하고 싶어서 닥치는대로 수정을 했다면, 이번에는 요구사항을 모두 정리해서 하나씩 차분하게 해치웠습니다. 요구사항을 정리하니 내가 어떻게 바꿔야 하는지 정리가 잘 되고, 3~4개정도 수정을 넘어가면서 흐려지는 집중력을 보완할 수 있습니다. 개발자 글쓰기를 정리했습니다. 단순히 글을 쓰는 것이 아니라, 비지니스 관점으로 글쓰기, 체인지 로그 작성, 릴리즈 작성하기 등 다양한 분야를 배웠습니다... 2022. 10. 22.
개발자의 글쓰기 저자 : 김철수 개요 말 그대로 개발자가 글을 어떻게 하면 잘 쓸 수 있을지 고민하여 읽었습니다. 단순히 기술 블로그가 아닌, 장애 보고, 릴리스 노트, 변수 네이밍, 오류 메시지 등 폭넓게 개발자가 글을 마주하는 사례들을 넣어주어서 다방면으로 도움이 됐습니다. 글을 쓰거나 보고할 때 개발자 시선보다는 비지니스 시선에서 글을 쓰는 것이 중요하다는 것도 알았습니다. 문장을 구조화하는 법 색상 RGB 값을 각가 사용하기 때문에 입력 데이터는 3차원 벡터다. -> 입력 데이터는 3차원 벡터다. 색상 RGB 값을 각각 사용하기 때문이다. 문장을 쉽게 쓰려면 이처럼 간단한 문장 구조로 핵심만 말한 뒤, 필요에 따라 부가 설명을 하면 된다. 이때 첫 문장의 주어를 가져다가 소제목으로 만들면 자연스럽게 문단을 구성할.. 2022. 10. 22.
TIL_2022.10.20 1. Facts(사실, 객관) - 방화벽 정책 이관 리스트 완료 및 인프라팀에 전달 - e지로 테이블 설계 완성 및 액타소프트 전달 - 모바일 탭 누르면 e카탈로그 이동 추가 - JVM 구조 정리 2. Feelings(느낌, 주관) 방화벽 정책 리스트를 완성 및 인프라팀에 전달했습니다. INBOUND, OUTBOUND의 개념을 다시 한번 알았습니다. 평소에 AWS를 이용해서 보안설정을 해주었던 것과 같은 것으로 INBOUND 작업 시, 보안팀에서 포트를 열어주어야 합니다. 부서에서 사용하는 카드결제 등 외부와 어떤 통신을 하고 있는지 알 수 있었습니다. e지로 양식을 완성했습니다. 1차 피드백을 기준으로 다시 수정했습니다. 평소에 한번에 많은 작업을 할 때 한두가지 실수하는데 이번에는 실수하지 않도록 열.. 2022. 10. 21.
반응형