본문 바로가기

1.프로그래밍/Java

(44)
[Java] Thread 란? (Thread 총 정리) [Java] Thread 란? (Thread 총 정리) Process 와 Thread 먼저 프로세스(Process)란 cpu에 의해 메모리에 올라가 실행중인 프로그램을 말한다. 자신만의 메모리 공간을 포함한 독립적인 실행공간을 갖고있다. 자바 JVM(Java Virtual Machine)은 주로 하나의 프로세스로 실행되며, 동시에 여러 작업을 수행하기 위헤 멀티 스레드를 지원한다. Thread란 프로세스 안에서 실질적으로 작업을 실행하는 단위를 말한다. Java에서는 JVM에 의해 관리가 된다. 한 프로그램에 여러개의 스레드가 존재 가능하며, 스레드가 1개이면 단일 스레드, 2개 이상이면 멀티 스레드 환경이 된다. Thread State Thread.State NEW : 스레드가 실행 준비가 완료된 상태..
[Java] Factory Method Pattern 이란? (디자인 패턴, 간단한 예제) [Java] Factory Method Pattern 이란? (디자인 패턴, 간단한 예제) [Java] Singleton Pattern 이란? (디자인 패턴) 이전 글에서 Singleton Pattern에 대해 공부를 하고 글을 작성해 두었다. 위의 글에서 작성하였듯이 디자인 패턴은 크게 3가지로 분류되는데 생성패턴, 구조패턴, 행위패턴이다. 그 중 오늘 작성할 Factory Method Pattern은 생성패턴에 속한다. Factory Method Pattern 이란? 팩토리 메서드 패턴(Factory method pattern)은 객체지향 디자인 패턴이다. Factory method는 부모(상위) 클래스에 알려지지 않은 구체 클래스를 생성하는 패턴이며. 자식(하위) 클래스가 어떤 객체를 생성할지를 결..
[Java] Singleton Pattern 이란? (디자인 패턴) [Java] Singleton Pattern 이란? (디자인 패턴) 디자인 패턴이란? 디자인 패턴이란 소프트웨어를 설계할 때 특정 맥락에서 자주 발생하는 문제들을 해결하기 위한 패턴들을 정의해 놓은 것이다. 그 중 GoF 디자인 패턴이 가장 유명하며, GoF 디자인 패턴은 크게 3가지로 분류된다. 객체의 생성과 관련된 Creational Pattern 생성패턴, 클래스나 객체를 조합하여 더 큰 구조를 만드는 Structural Pattern 구조패턴, 클래스 혹은 객체 사이의 책임분배에 대한 Behavioral Pattern 행위패턴이 존재한다. 그 중 Singleton Pattern은 생성패턴에 속한다. Singleton Pattern 이란? 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나..
[Java] BufferReader, BufferWriter 사용하기(System.out.print 와 Scanner 가 느린 이유) [Java] BufferReader, BufferWriter 사용하기(System.out.print 와 Scanner 가 느린 이유) 백준 알고리즘 공부하던 중 빠른 A+B 15552번 문제를 접하게 됐다. 그런데 일반적으로 사용한더 Scanner 와 System.out.print를 사용하게 되면 시간초과로 실패하게 되었다. 그렇기에 BufferReader 와 BufferWriter을 공부하고 사용하기로 마음 먹었다. System.out.println() 이 느린 이유 https://donggov.tistory.com/53 위의 글에 잘 정리되어 있다. 간단히 축약하자면 System은 Object 클래스를 상속받은 final 클래스 이며, out은 PrintStream의 인스턴스이고, println()은..
[Spring Boot] 게시판 조회수 중복 방지 (Cookie 사용, Mybatis) [Spring Boot] 게시판 조회수 중복 방지 (Cookie 사용, Mybatis) 게시판에서 조회수는 사용자가 해당 게시글을 읽어보게 하는 하나의 지표가 될 수 있다고 생각한다. 그러한 기능을 단지 게시글에 접속하는것만으로 무한정 올릴 수 있다면, 그 지표의 역할이 사라진다고 본다. 그렇기에 내가 만드는 게시판에는 조회수 중복을 방지하도록 하였다. 구현 먼저 간단하게 Cookie의 개념을 집고 넘어가는 것이 좋다. Cookie란 HTTP 통신 과정에서 브라우저에 저장되는 작은 데이터 조각이라 할 수 있다. [Network] 간단히 알아보는 Cookie, Session Cookie에 대해서는 위의 글에 간단히 정리해 두었다. BoardMapper.xml UPDATE hellparty_board SET..
[Spring Boot] @JsonFormat으로 Date 타입 직렬화(Json Date 타입 포맷) [Spring Boot] @JsonFormat으로 Date 타입 직렬화(Json Date 타입 포맷) 댓글 기능을 구현하던 중 댓글 등록 날짜를 표시하고 싶었다. Json으로 데이터를 View에 보내 Ajax로 구현하던 중 View에서 내가 원하는 format 형식의 데이터가 잘 출력이 되지 않았다. Controller에서 Date 타입을 SimpleDateFormat을 이용하여 가공하여 보내려고 해도 잘 되지 않았다. 그렇기에 구글링을 통해 @JsonFormat이라는 어노테이션을 알게 되었고 적용해 보았다. 공식문서 Common uses include choosing between alternate representations -- for example, whether Date is to be seri..
[Spring Boot] TimeZone 설정 (KST, UTC, KST to UTC, 9시간 차이) [Spring Boot] TimeZone 설정 (KST, UTC, KST to UTC, 9시간 차이) DB에 저장된 Date형식을 Thymeleaf를 통해 View에 출력하려고 했다. 그런데 계속 DB에 저장된 시간보다 +9시간 되어서 출력되길래 무엇이 문제인지 찾아 보았다. 위의 사진은 DB에 저장되어있는 Date이다. 아래는 서버를 실행시켜 Thymeleaf를 이용하여 View에 나타낸 것이다. DB에 저장된 시간과 9시간이 차이가 나며 KST라는 표시가 나와있다. 그래서 KST에 대해 알아보았다. 한국 표준시(韓國標準時, KST, Korea Standard Time)는 대한민국과 조선민주주의인민공화국의 표준시로, 동경 135도를 기준으로 하여 UTC보다 9시간 빠른 표준시(UTC+09:00)이다. ..
[Spring Boot] Quill.js + 이미지 업로드 (위지윅 에디터 이미지 업로드) [Spring Boot] Quill.js + 이미지 업로드 (위지윅 에디터 이미지 업로드) 참조 블로그 위의 블로그에 나와있는 JS 콜백 함수를 이용한 방법을 참조하여 구현하였습니다. 위지윅 에디터에는 종류가 몇가지 존재한다. CkEditor, Summernote, 네이버에서 제공하는 스마트 에디터(?) 등이 있다. 위지윅에 대한 글은 전에 작성해 두었다. 참고 바란다. 위지윅이란? CK Editor 사용하기 현재 위지윅 에디터를 이용하여 글을 작성하는 페이지를 구현하고 있는데 내가 공부해서 알고 있던 내용은 input 태그를 통해 이미지를 업로드하고 View에 출력하는 것이었다. 하지만 위의 방식을 사용하면 위지윅 에디터를 제대로 사용 못한다고 생각이 들었고, 사용자 또한 본인의 게시글에 이미지를 첨부..

728x90
반응형