전체 글

개발 공부 블로그
Web

[Web] 내가 보려고 정리한 HTTP 상태 코드

상태 코드 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능 1xx (Informational): 요청이 수신되어 처리 중 2xx (Successful): 클라이언트의 요청을 성공적으로 정상 처리 3xx (Redirection): 요청을 완료하기 위해 유저 에이전트의 추가 행동(조치)이 필요 4xx (Client Error): 클라이언트 오류. 잘못된 문법 등으로 서버가 요청을 수행할 수 없음 5xx (Server Error): 서버 오류. 서버가 정상 요청을 처리하지 못함 1xx (Informational) 거의 사용하지 않는 상태 코드이다. 2xx (Successful) 200 OK 요청 성공 201 Created 요청이 성공해서 새로운 리소스가 생성됨 202 Accepted 요청이 접수되..

Daily/Daily

마인크래프트 쉐이더 적용 방법

내가 보려고 적는 마인크래프트 쉐이더 모음 마인크래프트 쉐이더 적용 방법 마인크래프트 쉐이더 적용을 위해선 자바와 옵티파인을 먼저 설치해야 한다. 현재 마인크래프트 최신 버전인 1.19.4 버전에서는 자바 17버전을 사용하기 때문에 17버전을 다운로드 해야한다. 자바 17 다운로드 Java Archive Downloads - Java SE 17 WARNING: These older versions of the JDK are provided to help developers debug issues in older systems. They are not updated with the latest security patches and are not recommended for use in production...

Programing Language/Java

[Effective Java] 싱글턴 만드는 방법

private 생성자나 열거 타입으로 싱글턴임을 보증하라 싱글턴(singleton)이란 인스턴스를 오직 하나만 생성할 수 있는 클래스를 말한다. 싱글톤이란 개념 자체는 그리 어렵지 않다. 간단하게만 보려면 아래 글만 참고해도 된다. [Design Pattern] Singleton (싱글톤) Singleton 디자인 패턴 Singleton(싱글톤)이란 인스턴스가 단 1개만 생성되어야 하는 패턴이다. Java를 사용하여 싱글턴을 만드는 방법은 다음과 같다. Singleton public class SingletonTest { private int num; private S mimah.tistory.com 책 이펙티브 자바를 토대로 싱글톤을 만드는 세 가지 방법을 서술했다. 세 가지 방법 외에도 다양한 방법이..

Programing Language/Java

[Java] Builder pattern 특징과 장단점 with. setter

빌더 패턴 특징과 장단점 빌더 패턴을 살펴보기 전, 객체를 생성 시 사용하는 두 가지 방식을 간단하게 살펴본다. 빌더 패턴은 점층적 생성자 패턴과 자바빈즈 패턴의 장점을 채택하여 만들어졌다고 볼 수 있다. 점층적 생성자 패턴 유물이다. 요즘엔 거의 자바빈즈 패턴(setter) 또는 빌더 패턴을 사용하므로 실무 코드에서는 보기 어렵다. 말 그대로 점층적으로 생성자를 늘린다는 의미이다. 보통 필드 값이 추가될 때마다 생성자를 하나씩 추가한다. public class NutritionFacts { private final int servingSize; private final int servings; private final int calories; private final int fat; private fi..

Programing Language/Java

정적 팩토리 메서드 (Static factory method) [Effective Java]

정적 팩토리 메서드 (Static factory method) 정적 팩토리 메서드란 간단히 말해 객체를 생성할 때, 생성자를 쓰지 않고 정적 메서드를 사용하는 것이다. 디자인 패턴의 팩토리 메서드와는 다른 것이며, 디자인 패턴 중에는 정적 팩토리 메서드와 일치하는 것은 존재하지 않는다. 이펙티브 자바에 나오는 정적 팩토리 메서드의 장단점을 쉽게 이해하기 위해 예제 코드를 함께 기술하였으며, 이것은 무조건적인 정답이 아니기 때문에 직접 예제 코드를 만들어보는 것도 좋은 방법이다. 개인적으로는 해당 기법을 처음 보는 사람이라면 장점 1, 2, 4번과 단점만을 이해하여도 충분히 잘 사용할 수 있을 것이라 생각한다. 생성자의 접근 제어자가 public인 경우, 생성자를 통해 객체 생성을 언제 어디서든 제한 없이..

Daily/Blog

[Tistory] 티스토리 글쓰기 버튼이 없을 때

티스토리 글쓰기 버튼이 안 보일 때 티스토리에서 제공하는 기본 스킨 중에는 글쓰기 버튼이 존재하지 않는 스킨들도 여럿 존재한다. 심플 이즈 베스트인가 1. 관리자 페이지로 들어가서 글쓰기 자신의 티스토리 블로그에서 Q를 누르면 관리자 페이지로 이동한다. 관리자 페이지에 들어가서 오른쪽 상단에 있는 글쓰기 버튼을 클릭하면 된다. 다른 사람의 티스토리 블로그에서는 Q를 눌러도 관리자 페이지로 들어가지지 않는다. 이런 티스토리 단축키가 존재했다니 처음 알고 나서 신세계였다. 이 기세를 몰아 모든 키를 클릭해 봤는데 Q 키 빼고는 별다른 동작을 하는 단축키는 없었다. Z, X도 뭔가 동작하긴 하는 거 같은데 육안으로 바뀌는 부분은 확인하지 못했다. 2. 꾸미기 - 메뉴에 들어가서 메뉴 추가하기 사이드바에 블로그..

Programing Language/JavaScript

[JavaScript/jQuery] video muted 설정

video 태그 muted 설정하기 HTML5 에서 video 태그가 추가됨으로써 동영상을 쉽게 삽입할 수 있게 되었다. video 태그에는 몇 가지 속성 값을 정할 수 있다. autoplay, controls, muted 등이 있다. : 비디오 삽입 요소 - HTML: Hypertext Markup Language | MDN HTML 요소는 비디오 플레이백을 지원하는 미디어 플레이어를 문서에 삽입합니다. 오디오 콘텐츠에도 사용할 수 있으나, 요소가 사용자 경험에 좀 더 적합합니다. developer.mozilla.org controls 해당 속성을 명시하면 소리 조절, 동영상 탐색, 일시 정지 및 재시작 기능을 지원하는 컨트롤러 버튼을 제공한다. 컨트롤러 버튼을 사용해서 동영상을 음소거 할 수 있다. ..

Programing/Git

[Git] Git 충돌 해결, Branch 충돌 해결

브랜치 충돌 해결, 깃 충돌 해결 깃 충돌은 서로 다른 두 사용자가 동일한 부분을 수정했을 때 발생한다. 브랜치 간 충돌도 이와 마찬가지이다. 서로 다른 두 브랜치가 동일한 부분을 수정하고, 두 브랜치를 한 개의 브랜치에 병합할 때 충돌이 발생한다. 브랜치 간 충돌이 발생하면 머지가 되지 않는다. 사실 개발하면서 틈틈이 master(혹은 main) 브랜치에 업데이트되는 내용을 merge 해주면 충돌과 같은 문제는 거의 발생하지 않을 테지만, 실전에선 파일 전체가 덮어쓰기 되는 일이 발생할 수도 있기 때문에 ㅠ^ㅠ-전체 덮어쓰기 같은 건 일어나면 안 되는 일이지만 white space로 인해 더러 일어나기도 한다 알고 싶지 않았다- 충돌 해결 방법은 알아두면 좋다. 충돌 예시 현재 자신이 로그인 기능을 l..

Programing Language/Java

[Java] 멀티 스레드(Multi thread)

멀티 스레드(Multi thread) 스레드에 대한 개념을 설명하기 전, 스레드는 프로세스 내에 존재하는 것이므로 프로세스에 대한 개념을 간략히 설명한다. 프로세스(process) 운영체제에서 실행 중인 하나의 애플리케이션을 프로세스라고 부른다. 사용자가 애플리케이션을 실행하면 운영체제로부터 실행에 필요한 메모리를 할당받아 애플리케이션의 코드를 실행하는데, 이때 실행되는 애플리케이션이 프로세스이다. 작업 관리자를 켰을 때 프로세스 탭에 출력되는 게 프로세스다. 우리가 크롬이나 엣지를 사용해 인터넷을 볼 때 작업 관리자의 프로세스 탭에 크롬이나 엣지가 나타난다. 이처럼 크롬과 엣지도 프로세스이다. 만약 인터넷 창을 여러 개 띄워서 사용하기 위해 크롬 창을 여러 개 띄운다면, 이것이 멀티 프로세스다. 스레드..

Web

[FreeMarker] 프리마커란?

프리마커란? 정확히 말하자면 Apache FreeMarker로 자바에서 사용되는 템플릿 엔진, 자바 라이브러리이다. 템플릿과 데이터를 기반으로 텍스트 출력을 생성한다. 프리마커의 확장자는 ftl이다. FreeMarker Template File의 줄임말이다. 프리마커 문법은 아래 사이트에서 확인해볼 수 있다. Apache FreeMarker Manual freemarker.apache.org 스프링, 스프링 부트로 프로젝트 진행 시 템플릿 엔진 대신 JSP를 사용할 수 있지만, 더 이상 스프링 부트에서 JSP는 추천되지 않는다. Java EE에 종속적이라는 점이 큰 단점으로 다가오기 때문이다. 예로 인텔리제이 IDE에서는 스프링 부트 프로젝트에서 JSP를 사용하는 경우 패키징을 war로 선택해야 한다. ..

Daily/Daily

갤럭시 카카오톡 알림 팝업 안 뜰 때

갤럭시 카카오톡 알림 팝업 안 뜰 때 갤럭시 설정 > 알림 > 카카오톡 에서 알림을 `알림 조용히 받기`로 설정하였고, 카카오톡 앱 내 알림 설정에서는 메시지 알림 On에 알림 팝업 항상 표시로 설정해놓았다. 그런데 알림 센터에 카톡 메시지가 온 것은 뜨지만, 화면 중앙 상단에 메시지 미리보기 팝업이 뜨지 않아 불편한 상황이었다. 원래 아이폰을 사용했었고, 아이폰에서는 조용히 알림 받기를 선택하면 정말 조용히라는 말 뜻 그대로 소리, 진동만 꺼지는 설정이었다. 근데 갤럭시에는 알림 팝업도 조용히에 들어가나보다.... 갤럭시 알림 설정에서 카카오톡 알림 설정을 `알림 조용히 받기` 대신 `소리와 진동 허용`으로 변경해야 한다. 그리고 소리와 진동을 끄고 싶다면 카카오톡 앱 내 알림 설정에 들어가서 소리와 ..

Web

[FreeMarker] null 체크, 빈 리스트 체크 (feat. 프리마커 ??)

empty, null 체크, 빈 리스트 체크 has_content와 ?? 를 사용해 빈 리스트인, null인지 아닌지 체크할 수 있다. 이전에는 if_exists로 검사했었지만 더는 권장되지 않는다. ... has_content는 리스트(오브젝트)가 존재하는지(size가 1 이상인지) 검사함과 함께 동시에 null 검사도 수행한다. 검사하는 리스트가 빈 값이거나 존재하지 않으면 false를 반환하고, 값이 존재하는 경우 true를 반환한다. 리스트에 빈 객체가 들어와 있는 경우가 생길 수 있는데, 이러한 경우 has_content가 제대로 동작하지 않는다. 예시로, 컨트롤러에서 list 타입이 아닌 객체 값을 넣어주었다고 가정한다. @Controller public class ProductControll..

밈아
Mimah