분류 전체보기 379

[Effective Java] 3장. 모든 객체의 공통 메서드

[item-10] equals는 일반 규약을 지켜 재정의하라 equals 메서드는 반드시 동치관계(equivalence relation)를 구현하며, 다음을 만족합니다.반사성 (reflexivity) : null이 아닌 모든 참조 값 x에 대해 x.equals(x)는 true이다.대칭성 (symmetry) : null이 아닌 모든 참조 값 x, y에 대해 x.equals(y)가 true이면 y.equals(x)도 true이다.추이성 (transitivity) : null이 아닌 모든 참조 값 x, y, z에 대해 x.equals(y)가 true이고 y.equals(z)도 true이면, x.equals(z)도 true이다.일관성 (consistency) : null이 아닌 모든 참조 값 x, y에 대해 x..

Java/Effective Java 2024.08.08

[Effective Java] 2장. 객체 생성과 파괴

[item-1] 생성자 대신 정적 팩토리 메서드를 이용하라 장점메서드 이름을 가질 수 있기에 명확한 이름으로 값을 생성할 수 있습니다.호출 때마다 인스턴스를 새로 생성하지 않을 수 있습니다.하위 클래스를 반환하는 유연성을 얻을 수 있습니다.매개 변수에 따라 매번 다른 클래스의 객체를 반환할 수 있습니다.정적 팩토리 메서드를 작성하는 시점에는 해당 객체의 클래스가 존재하지 않아도 됩니다.단점하위 클래스로 상속하기 위해서는 public, protected 생성자가 필요합니다.프로그래머가 찾기 어렵습니다. [item-2] 생성자의 매개변수가 많다면 빌더를 고려하라생성자에 매개변수가 많아지면 코드를 직관적으로 이해하기 어렵습니다. 이에 대한 대안으로 Setter를 사용하면 여러 개의 Setter가 호출되며 객체..

Java/Effective Java 2024.08.08

[JavaScript] setTimeout(), setInterval()

오늘은 Javascript에서 제공하는 Timer 함수인 setTimeout(), setInterval() 함수에 대해 알아보도록 하겠습니다. setTimeout()어떠한 코드를 실행하지 않고, 일정 시간 기다린 후에 실행하는 경우에 사용하는 함수첫 번째 인자로는 실행할 코드를 담고 있는 함수를 받고, 두 번째 인자로는 지연 시간을 ms 단위로 받습니다.ex) setTimeout(() → console.log(”2초 후에 실행됨”), 2000)세 번째 인자부터는 가변 인자를 받게 됩니다. 첫번째 인자로 넘어온 함수가 인자를 받는 경우, 이 함수에 넘길 인자를 명시해 주기 위해서 사용합니다.function add(x, y) { console.log(x + y);}setTimeout(add, 2000, 3..

JavaScript 2024.07.31

[GPT-4o] GPT-4o 기능에 대해 알아보자

개발 분야가 아니더라도 요즘 AI는 없어서는 안 될 시대가 왔습니다.  실생활에서도 종종 쓰지만, 저는 업무상 많이 사용해왔는데요. 그래서 최대한 효율을 극대화하기 위해 GPT-4o 서비스를 구독하였습니다. (금액은 대략 환율 따져서 31000원 정도 했습니다) GPT-4o와 GPT-4, GTP-3.5와의 차이점에 대해서도 간단히 알아보면서 어떤 장점이 있는지도 분석해보겠습니다.현재 무료 버전인 GPT-3.5에서는 제한적인 GPT-4o 액세스라고 나와있지만, 사용 개수가 매우 제한적입니다. 하지만, 4o를 이용하게 되면, 이러한 불편함을 신경 쓰지 않아도 되며 굉장히 빠른 속도와 최신의 데이터로 답변을 해줍니다. 그래서 더욱 업무 능률이 향상될 것이라고 생각했기에 과감하게 결제하게 되었습니다. 텍스트 처..

기타 2024.07.30

[이큐메틱 유선 마우스] Sanitize-M3 향균 무소음 유선 마우스 사용 후기

회사에서 제공해 주는 유선 마우스가 소리도 너무 크고, 손목도 불편했기에 마우스를 개인 사비로 구매하였습니다.  우선 받자마자 느낀 점은 디자인이 제 스타일이 아니였지만, 무소음에 왼쪽 라인에 뒤로 가기, 앞으로 가기 버튼이 있어서 매우 만족스러웠습니다. 추가로 마우스 중간부에 감도를 조절하는 버튼이 존재합니다. 12000원이라고 하기엔 너무 가성비가 좋은 제품이라고 생각합니다. 또한 이큐메틱만의 장점은 바로 향균처리제품이라는 점입니다. 항균제품의 장점은 다음과 같이 정의할 수 있습니다.  아직 긴 시간 사용해보진 않았지만, 손목도 안아프고 편하게 잘 사용할 수 있을 것 같아 흡족스럽네요. 이상으로 무소음 마우스 후기 마치도록 하겠습니다.

기타 2024.07.29

[정보처리기사] 정보처리기사 실기 합격 후기 및 공부법 (전공자)

오늘은 정보처리기사 실기 합격 후기와 공부법에 대해 간략하게 설명드리도록 하겠습니다. 우선 저는 무조건 책으로 1회독 하는 것을 추천드립니다. pdf 요약본 회독이나 코딩 문제만 깊게 파는 공부법도 좋긴 한데, 전체적인 흐름을 한번 보는 게 더 깔끔한 공부법이라고 생각합니다. 저는 우선 책으로 1회독 하고 출, 퇴근길에 간간히 pdf 자료를 보면서 공부를 하였습니다. 이번 2회 차 때는 코딩문제보다 이론에 더욱 포커스를 두고 공부하였습니다. 왜냐하면 이론을 틀려버리면 코딩문제 1, 2개만 틀려도 60점을 넘기지 못하기 때문입니다. 그래서 확실하게 맞출 수 있는 이론을 깊게 공부하고 코딩 문제는 사전 지식으로 풀어야겠다고 생각했습니다.(공부 기간: 대략 2~3주, 평일 1~2시간, 주말은 4~5시간)  이..

자격증 2024.07.29

[Java] Clean Code가 무엇이고 왜 사용해야 하는가

오늘은 클린코드에 대해 알아보려고 합니다. Clean Code의 대략적인 개념에 대해서 알아보고, 추가로 클린 코드의 중요성과 적용 방법에 대해서도 예시를 들어 설명드리겠습니다.  Clean CodeClean Code does one thing well, Clean Code is simple and direct단순하여 읽기 쉽고, 각 역할마다 주어진 하나의 일만 담당하며, 복잡하거나 모호하지 않은 코드이를 통해 프로그램의 동작을 보장하는 것뿐만 아니라, 코드 자체가 가독성이 뛰어나고 유지보수가 쉬워집니다원하는 로직을 빠르게 찾을 수 있는 코드이자 모든 팀원이 이해하기 쉽도록 작성된 코드Importance of Clean Code코드의 가독성이 떨어진다면 해당 코드가 무슨 일을 하는 코드인지, 어떤 메커니..

Java/Java Concept 2024.07.24

[Frontend] localStroage vs SessionStorage

오늘은 웹 브라우저에서 클라이언트 측 데이터를 저장하는데 사용되는 메커니즘인 localStorage, SessionStorage에 대해 알아보겠습니다.   HTML5를 사용하기 시작한 이래로 클라이언트 브라우저에 정보를 캐시하거나 저장하는 다양한 옵션이 제공되었습니다. 이전에는 브라우저에 데이터를 저장할 때 쿠키만 사용했지만, 제한적인 용량과 보안적인 문제로 인한 한계가 존재했습니다. 이에 대한 개선안으로 localStorage, SessionStorage가 도입되었는데, 이 두 개의 특징과 차이점에 대해 간단하게 설명드리겠습니다. localStorage저장방식: 웹 브라우저에서 키/값 쌍형태로 저장합니다. (로컬 컴퓨터에 저장)유지기간: 영구적으로 데이터 저장(도메인별로 지속), 브라우저를 닫아도 데이..

JavaScript 2024.07.11

[Spring] Spring Batch Architecture & Component

오늘은 스프링 배치에 대해서 포스팅하려고 합니다. 스프링 배치가 무엇이고 왜 사용하는지에 대해 설명드리겠습니다.Spring Batch는 대용량 데이터를 처리하기 위한 프레임워크(이 작업을 "자동화"하여 "시스템의 부하를 줄이고 효율적인 데이터 처리"가 가능하여 사용)로서, 스프링 프레임워크 위에서 동작합니다. Batch 작업이라고 하면, 논리적, 물리적으로 관련된 일련의 데이터를 그룹화하여 일괄 처리하는 작업입니다. Scheduler 기능과는 엄연히 다른 기능인데, Spring Batch에서도 스케줄러 기능과 함께 사용할 수 있습니다.  Spring Batch 특징확장성과 성능: Spring Batch는 대용량의 데이터를 효율적으로 처리할 수 있는 기능을 제공합니다 (멀티스레딩, Chunk 기반 처리, ..

Java/Spring 2024.07.05

[Java] Netty (Concept, Architecture, Component, Work flow)

오늘은 Java 기반 비동기 이벤트 중심의 네트워크 프레임워크인 Netty에 대해서 알아보려고 합니다. 회사에서 WebSocket 통신을 위해 Netty를 도입했지만, 막연히 소켓 통신을 위한 프레임워크 정도로만 인지하고 있었고 세부적인 내용은 모른 상태였습니다. 저는 Netty를 통해 네트워크 소켓 통신이 어떻게 이루어지고, 아키텍처와 동작과정에 대해 분석할 겸 하나씩 정리해보려고 합니다. (물론 웹소켓이 아닌 다양한 많은 프로토콜을 구축할 수 있습니다)  Netty를 개념과 다양한 컴포넌트, 장점(Blocking I/O 방식과 차이를 곁들여서) 및 사용 목적에 대해 상세히 설명드리겠습니다. Netty자바 기반의 비동기 이벤트 중심의 네트워크 애플리케이션 프레임워크유지 관리가 용이한 고성능 프로토콜 서..

Network 2024.06.27