| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
- 정규식
- select
- feignClient
- 자바
- 초단위
- 리눅스
- aws elasticache 활용
- 톰캣
- for문
- 특수문자 치환
- sftp
- Java
- 엔티티 코드 치환
- javascript
- 제이쿼리
- 자바스크립트
- catalina.out
- docker 컨테이너로 띄우기
- Linux
- Entity Code 치환
- Docker Compose
- springboot+redis
- architecture
- insert
- 만들면서 배우는 클린 아키텍처
- Tomcat
- js
- redis + spring boot 함께
- jQuery
- mysql
- Today
- Total
목록전체 글 (74)
꾸준하게, 차근차근
'만들면서 배우는 클린 아키텍처' 책을 통해 클린 아키텍처를 공부하면서 알게된 내용을 기록하고 정리하기 위해 시리즈를 작성하려고 한다. 해당 챕터에서는 사내 솔루션의 아키텍처인 계층형 아키텍처의 문제에 대해 이야기한다. 1. 계층형 아키텍처의 문제는 무엇일까? 일반적인 3계층 아키텍처는 웹 계층에서 요청을 받아 도메인 혹은 비즈니스 계층에 있는 서비스로 요청을 보내 필요한 비즈니스 로직을 수행하고, 도메인 엔티티의 상태 조회 혹은 변경을 위해 영속성 계층의 컴포넌트를 호출한다. 계층형 아키텍처는 견고한 아키텍처 패턴이다. 계층을 잘 이해하고 구성한다면 웹 계층이나 영속성 계층에 독립적으로 도메인 로직 작성이 가능하고, 도메인 로직에 영향을 주지 않고 웹 계층과 영속성 계층에 사용된 기술의 변경도 가능하..
웹 어플리케이션을 운영에 적용하기 위해 제공 받은 인증서로 SSL 설정을 하니 tomcat 구동시 아래와 같은 오류가 발생하여 해결 방법을 작성하려 한다. java.net.socketexception: permission denied ... 오류 발생 원인 리눅스에서는 일반 사용자에게 Wellknwon port의 사용 권한을 부여해주지 않아 발생하는 오류로 확인되었다. Wellknwon port란 0 ~ 1023 까지의 port를 말하며 해당 port를 사용하려면 root 권한이 필요하다. 해결 방법 sudo 권한을 부여 받은 후 sudo ./startup.sh 명령어를 실행하니 정상적으로 구동되는 것을 확인할 수 있었다. END
개발한 서버를 실행시키기 위해 윈도우에서 스크립트 파일을 작성하여 리눅스 서버에서 해당 스크립트를 실행하니 아래와 같은 오류가 발생하여 해결 방법을 작성하려 한다. /bin/sh^M: bad interpreter: No such file or directory 오류 발생 원인 스크립트 파일을 윈도우에서 작성한 뒤 리눅스에서 실행하였기 때문. 윈도우와 리눅스는 줄바꿈을 의미하는 개행문자가 달라서 발생하는 오류로 확인되었다. 해결 방법 해당 스크립트를 바이너리 모드로 연다. vi -b {스크립트명} 스크립트 내용에서 ^M 문자열을 모두 제거한 뒤 실행하면 해당 오류는 발생 없이 정상 실행되는 것을 확인할 수 있다. END
진행하는 프로젝트에 따라 JDK를 유동적으로 전환하여 사용해야 하는 일이 빈번히 발생하여 Window에서 scripts를 사용하여 JDK를 유동적으로 전환하는 방법에 대해 이야기하려 한다. 1. 자바 환경 변수 설정 내 PC 우 클릭 > 속성 > 고급 시스템 설정 > 환경 변수 클릭 시스템 변수 새로 만들기 클릭 변수 이름 > JAVA_HOME 입력, 변수 값 > C:\Program Files (x86)\Eclipse Adoptium\jdk-8.0.332.9-hotspot 입력 > 확인 클릭 시스템 변수 path 더블 클릭 > 새로 만들기 클릭 > C:\Program Files (x86)\Eclipse Adoptium\scripts 입력 > 확인 클릭 > 확인 눌러 환경 변수 창 닫기 2. 변환하여 사용..
공식 문서는 이렇게 말하고 있다. 더욱 완전하고 일관된 LIFO Stack 작업은 Deque 인터페이스 및 해당 구현을 사용하여 구현하는 것이다. 즉, Stack 대신 Deque의 구현체인 ArrayDeque 사용을 제안하고 있다. Java에서 Vector는 특정 상황에서 효율적이지 않기 때문에 Thread Safe 않다고 할 수 있다. 그렇기 때문에 Vector를 상속 받은 Stack은 다음과 같은 단점이 존재한다. 초기 용량 설정을 지원하지 않는다. 모든 작업에 Lock이 사용된다. 단일 스레드 실행 성능이 저하될 수 있다. 단순한 Iterator의 탐색 작업에서도 get() 메서드 실행시 매번 Lock이 발생하게 되므로 오버헤드가 커진다. Stack은 Vector를 상속 받았기 때문에 다중 상속을 ..
1. Mutable 생성된 이후 수정 가능 이미 존재하는 객체에 재할당(값 변경) 값을 변경할 수 있는 메소드 제공 Mutable class일 경우 Getter와 Setter 존재 thread safe하지 않을 수 있음(병렬처리시 값 보장할 수 없게 됨) StringBuffer, StrinfBuilder, java.util.Date 등이 해당 a. Mutable : 대표적인 StringBuffer, StringBuilder 문자열 연산에서 클래스를 한번 생성하고 연산이 필요할 때 크기를 변경하여 문자열을 변경한다. 문자열 연산이 자주 있을 때 사용하는 것이 적절하다. b. StringBuffer 동기화 키워드를 지원하여 멀티스레드 환경에서 안전하다. 즉, 문자열 연산이 많고 멀티스레드 환경일 경우 사용하..
1. Stack Stack이라는 단어는 더미 혹은 쌓다 라는 의미의 단어로, 단어의 뜻 그대로 데이터를 쌓아 올린 형태의 자료구조이다. 가장 마지막에 들어온 자료가 가장 먼저 빠져나가는 선형구조이며, 후입선출(Last In First Out, 나중에 들어간 값이 먼저 나온다) 자료구조를 구현한 자바 클래스이다. List Collection의 Vector를 상속 받은 Stack 메모리 구조의 클래스를 제공한다. 배열 기반 데이터 구조로 인덱스로 요소에 액세스 할 수 있다. 2. 특징 먼저 들어간 데이터가 나중에 빠져나가는 Last In First Out 인터럽트 처리, 수식의 계산, 서브 루틴의 복귀 번지 저장 등에 쓰인다. 그래프의 깊이 우선 탐색(DFS) 알고리즘에 사용된다. 재귀적(Recursion)..
1. Oracle 미국의 오라클 회사에서 제작한 세계 점유율 1위 데이터베이스 관리시스템이며 현재 유닉스 체제에서 가장 많이 사용되는 DBMS이다. a. 장점 관리시스템 중앙 집중 방식으로 Administration Monitoring이 가능하고, Multiple Databases 튜닝이 가능하다. 다른 Admin User들과 공유가 가능하다. 다수의 사용자가 동시에 접근 가능하다. 변화 관리 변경 Plan을 작성하고 실제 구현하기 전에 변경사항의 효과를 볼 수 있다. 생산시스템을 방해하지 않는다. 경고 오류가 발생하면 오라클은 이메일이나 설정되어 있는 계정으로 연락을 줄 수 있다. 경고는 예정된 가동 정지 시간 동안 차단될 수 있다. 용량 & 처리 업그레이드 관리자의 계획을 돕기 위해 사용 패턴을 추적..