전체 글 371

[국내여행] 2024.08.15 ~ 2024.08.16 1박 2일 춘천 여행일지

이번 휴가철에 여자친구와 가볍게 춘천을 다녀왔습니다!  서울 용산에서 춘천으로 출발 (ITX-청춘 열차 이용) 하였는데, 엄청 편하고 거리도 1시간 10분 정도로 비교적 가까워서 좋았습니다. 도착 후에 바로 춘천에서 유명한 닭갈비를 먹으러 갔습니다. (가게 정보: 남춘천닭갈비) 닭갈비와 막국수를 먹었는데, 춘천의 대표 음식이 닭갈비인데 서울에서 먹은 것과 크게 차이가 나지 않아 아쉬웠습니다. 이후에 추억을 남기기 위해 셀프 사진관을 예약했는데 정말 만족스러웠습니다. (브링 메모리: 2인 25000원)사진관 예약을 4시로 하여 시간이 2~3시간 남아서 근처 카페를 갔는데, 조용하고 분위기가 있어 매우 만족스러웠습니다. 더불어 커피도 맛있었습니다. 여자친구와 수다를 떨며 시간을 녹인 후에 무사히 사진을 찍을..

일상/여행 2024.08.18

[Effective Java] 4장. 클래스와 인터페이스

[item-15] 클래스와 멤버 접근 권한을 최소화하라 객체지향의 핵심: 캡슐화, 정보은닉 캡슐화의 장점시스템 개발 속도 향상시스템 관리비용 절감성능 최적화코드 재사용성큰 시스템을 제작하는 난이도를 낮춰줍니다잘 설계된 객체는 모든 내부 구현을 완벽히 숨겨, 실제로 구현한 코드와 외부의 사용자가 사용하는 코드를 깔끔하게 분리합니다.외부에 공개한 메서드를 통해서만 다른 객체들과 소통하며 서로의 내부 동작방식에는 전혀 개의치 않습니다 [item-16] public 클래스에서는 public 필드가 아닌 접근자 메서드를 사용하라// Degenerate classes like this should not be public!class Point { public double x; public double y;}// E..

Java/Effective Java 2024.08.08

[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