728x90
반응형

전체 글 131

[Management] Nginx - vue.js 새로고침 시 404 Error

Nginx 에서 vue.js를 빌드 한 후 홈페이지에 접속을 했습니다. 그리고 새로고침을 눌렀을 때 아래와 같은 오류가 발생했습니다. /etc/nginx/sites-enabled/default 설정 파일 수정 기존 설정 파일 server { listen 8081 default_server; listen [::]:8081 default_server; server_name {publicIPv4}; location / { # add_header Cache-Control "max-age=0, no-cache, no-store, must-revalidate"; # add_header Pragma "no-cache"; root /home/ubuntu/twim/dist; index index.html try_file..

Project/Management 2022.12.06

[Jenkins] Jenkins 설치 - Windows

젠킨스 젠킨스는 소프트웨어 개발 시 지속적 통합 서비스를 제공하는 툴입니다. 다수의 개발자들이 하나의 프로그램을 개발할 때 버전 충돌을 방지하기 위해 각자 작업한 내용을 공유 영역에 있는 Git등의 저장소에 빈번히 업로드함으로써 지속적 통합이 가능하도록 해줍니다. [위키백과] 젠킨스 설치 Jenkins download and deployment Jenkins download and deployment The Jenkins project produces two release lines: Stable (LTS) and regular (Weekly). Depending on your organization's needs, one may be preferred over the other. See the link..

CI.CD/Jenkins 2022.12.06

[Clean Code] 13장 동시성(2)

깨끗한 코드를 작성하기 위한 열세번째 기록 다중 스레드 프로그래밍에서 사용하는 실행 모델 1. 생산자-소비자 생산자 스레드가 정보를 생성해 버퍼나 대기열에 넣습니다. (버퍼와 대기열은 한정된 자원) 소비자 스레드는 대기열에서 정보를 가져와 사용합니다. 생산자 스레드는 대기열에 빈 공간이 있어야 정보를 채웁니다. 소비자 스레드는 대기열에 정보가 있어야 가져옵니다. 생산자 스레드는 대기열에 정보를 채운 다음 소비자 스레드에게 신호를 보냅니다. 소비자 스레드는 대기열에서 정보를 읽어들인 후 신호를 보냅니다. 따라서 잘못하면 생산자 스레드와 소비자 스레드가 둘다 진행 가능함에도 불구하고 동시에 서로에게서 오는 신호를 기다릴 가능성이 존재합니다. 2. 읽기-쓰기 쓰기 스레드가 버퍼를 갱신하느 동안 읽기 스레드가 ..

[Effective Java] equals는 일반 규약을 지켜 재정의하고 hashCode도 재정의하라

equals 메서드는 재정의하기 쉬워 보이지만 곳곳에 함정이 도사리고 있어서 자칫하면 끔직한 결과를 초래할 수 있습니다. 문제를 회피하는 가장 쉬운 길은 재정의하지 않는 것으로, 그렇게 두면 클래스의 인스턴스는 오직 자기 자신과만 같게 됩니다. 재정의하지 않는 것이 최선인 경우 1. 각 인스턴스가 본질적으로 고유하다. 값을 표현하는 것이 아니라, 동작하는 개체를 표현하는 클래스를 표현할 때는 재정의 하지 않는 것이 더 좋습니다. 예로 Thread가 있고, equals 메서드는 Thread에 가장 딱 맞게 구현되어 있습니다. 2. 인스턴스의 '논리적 동치성'을 검사할 일이 없다. Pattern 클래스를 사용할 때 만약 equals를 재정의해서 사용하는 것은, 두 인스턴스가 같은 정규표현식을 나타내는지 검사..

[Java] 리스트를 만드는 방법 3가지 (ArrayList, Arrays, List)

자바에서 List를 만드는 방법은 3가지가 있습니다. 1) import java.util.ArraysList; List numberList = new ArrayList(); 2) import java.util.Arrays; List numberList = Arrays.asList(); 3) import java.util.List; List numberList = List.of(); 3가지 방법의 차이점 Element add & remove setter null 1) new ArrayList() 가능 가능 가능 2) Arrays.asList() 불가능 가능 가능 3) List.of 불가능 불가능 불가능 Element add & remove가 불가능한 방법에서 add를 사용할 경우, UnsupportedOp..

JAVA 2022.12.02

[Effective Java] try-finally 보다는 try-with-resources를 사용하라

자바 라이브러리에는 close 메서드를 호출해 직접 닫아줘야 하는 자원이 많습니다. InputStream, OutputStream 등이 좋은 예입니다. 자원 닫기는 클라이언트가 놓치기 쉬워 예측할 수 없는 성능 문제로 이어지기도 합니다. 전통적으로 자원이 제대로 닫힘을 보장하기 위해 try-finally를 사용했습니다. try-finally 코드 예시 public class TryFinallyTest { static void copyFiles(String rawPath, String copyPath) throws IOException { InputStream in = new FileInputStream(rawPath); try{ OutputStream out = new FileOutputStream(co..

[Effective Java] 다 쓴 객체 참조를 해제하라

자바는 C와 C++과는 다르게 가비지 컬렉터를 갖추고 있어서 메모리를 관리하지 않아도 된다. 그렇다고 메모리 관리에 신경쓰지 않아도 된다는 것은 아니다. 이것은 오해이다. 메모리 누수가 일어나고 있는 코드 public class MemoryLeakTest { private Object[] elements; private int size = 0; private static final int DEFAULT_INITIAL_CAPACITY = 16; public MemoryLeakTest() { elements = new Object[DEFAULT_INITIAL_CAPACITY]; } public void push(Object e){ ensureCapacity(); elements[size++] = e; } p..

[Effective Java] 불필요한 객체 생성을 피하라

똑같은 기능의 객체를 매번 생성하기보다 객체 하나를 재사용하는 편이 나을 때가 많습니다. String 객체 생성 시 String string = new String("value"); 다음과 같은 코드는 실행될 때마다 String 인스턴스를 새로 만들게 됩니다. 그래서 반목문이나, 자주 호출되는 메서드에 포함되어 있다면 사용하지 않는 인스턴스가 많이 생성될 수 있습니다. String string = "value"; 다음과 같은 코드를 통해 위에서 문제점을 개선할 수 있습니다. 새로운 인스턴스를 생성하는 대신 하나의 String 인스턴스를 재활용하여 사용합니다. 이와 같은 방식을 사용할 때, 가상 머신 안에서 이와 똑같은 문자열 리터럴을 사용하는 모든 코드가 같은 객체를 재사용함이 보장됩니다. Boolean..

[Effective Java] 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라

많은 클래스가 하나 이상의 자원에 의존합니다. 이번 시간에는 의존하는 방식에 대해서 고민해보는 시간입니다. 1. 정적 유틸리티를 잘못 사용한 예 package twim.corp.grafting.domain.Grafting.service; public static class DependencyCheck { private final DependencyLib dependencyLib = new DependencyLib(); private DependencyCheck(){}; public boolean isValid(String dependency){ return true; } } 2. 싱글턴을 잘못 사용한 예 package twim.corp.grafting.domain.Grafting.service; publ..

728x90
반응형