일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 카카오엔터프라이즈
- objectstorage
- 카카오클라우드
- CODETREE
- 완전탐색
- DP
- 함수 종속성
- 코드트리
- 동전 퍼즐
- MESSAGEBROKER
- 구름
- dockercompose
- softeer
- sonarqube
- jsonwebtoken
- On-Premise
- bfs
- es_java_home
- DFS
- 정렬
- 인가인증
- s3
- 소프티어
- 자바
- BFS
- java
- 백엔드 개발
- db
- 알고리즘
- bitmask
- Today
- Total
목록분류 전체보기 (43)
wooing

게시글 서비스를 구현하다보니 도메인간에 결합도가 높아 서비스 로직을 작성하는 과정에서 서로 다른 도메인의 서비스로직들이 순환참조되는 경우가 발생했다. 처음엔 순환참조를 회피하기 위해 컨트롤러에 여러 서비스를 호출하는 방법 등 상위 레이어에 기능을 부여하는 방법으로 해결했었다. 그러나 작업이 진행됨에 따라 너무 높은 결합도로 이제는 회피할 수 없는 단계에 이르렀다고 판단했고 결합도를 낮추는 원천적인 방법으로 해결해야겠다고 생각했다.아래의 코드는 실제 작업하고 있는 게시글 서비스 코드중 일부이다. 보면 게시글 외에도 편집자, 소켓통신을 담당하는 Article서비스 등 여러 서비스를 참조하고있다.@Service@RequiredArgsConstructorpublic class PostsCommandService..

프로젝트에 사용되는 비밀번호, 키 값, IP등 여러 민감정보는 public으로 노출되어서는 안된다. 민감정보들을 노출하지 않는 방법으로 Github Secret, 환경변수 등록, Submodule등 여러 방법이 있다. 우리는 Submodule을 통해 민감정보를 한 레포지토리에서 관리하고자 한다.서브모듈이란1. 서브모듈 프로젝트 생성 및 파일 추가서브모듈 레포지토리는 민감정보를 그대로 저장하기 때문에 private으로 생성한다. 서브모듈은 프로젝트에 연결할때 레포지토리의 모든 파일이 저장되기 때문에 최상위 경로에 그대로 저장했다간 구분하기가 어렵다. (일반적으로는 우리처럼 프로젝트마다 파일이 다른 경우엔 서브모듈을 분리해서 생성한다고 한다.) 디렉토리를 생성해서 서브모듈의 파일을 읽어올때 디렉토리 경로로 ..

프로젝트의 인프라를 학교에서 제공받은 온프레미스에서 구축하고있다. 학교 외부에서 이 작업을 하려면 FortiClient VPN으로 학교 내부망에 접속해야한다. 학교에서 제공받은 계정으로 VPN에 접속하여 작업을 하였다.시작하기에 앞서Jenkins를 Git과 연동하여 CI/CD를 구축하는 방법으로는 webhook으로 특정 액션이 발동되면 url에 전달한다. 하지만 우리는 On-Premise환경이기때문에 외부에서 먼저 요청을 보내올 수 없다. 이런 이유로 Webhook방식으로는 할 수 없다. 그래서 우리는 Poll SCM방식으로 Jenkins가 레포지토리에 일정 시간마다 빌드를 시도하는 방법으로 구현하려고 한다.만약 이 방법을 사용하지 않으려면 GitLab을 사용하여 서버 내부에 SCM을 구축해놓는 방법으..

쿠버네티스로 서비스를 관리할때 DB는 쿠버네티스로 관리되지 않고, 서버에 설치하여 따로 관리한다. 우리는 서비스별로 VM을 분할하여 각 VM에 DB를 설치하려한다. 현재는 온프레미스 환경에 설치하지만 학기 말 카카오 클라우드를 받게되면 빠르게 이관해야하기 때문에 DB 설치를 도커로 하려고 한다.0. Docker, docker-compose 설치ssh로 vm에 접속해서 https://haengsin.tistory.com/128 여기 나온 절차를 따라함Docker 설치 후 permission denied while trying to connect to the Docker daemon socket at unix:~~~오류 발생시 아래 방법으로 해결 가능https://stackoverflow.com/questi..

Alexnet이란? Alexnet은 ILSVRC(ImageNet Large-Scale Visual Recognition Challenge)2012년 대회에서 1위를 한 CNN구조이다. 논문 제목: ImageNet Classification with Deep Convolutional Neural Networks https://papers.nips.cc/paper/2012/file/c399862d3b9d6b76c8436e924a68c45b-Paper.pdf 순서 1. Overall 2. The Dataset 3. The Architecture 4. Reducing Overfitting 5. Details of learning Overall 5개의 Convolutional layers와 3개의 Full-con..

합성곱 신경망이란? 합성곱 신경망은 크게 합성곱층(Convolution layer)과 풀링층(Pooling layer)으로 구성되어있다. 위의 그림에서 CONV는 합성곱 연산을 의미하고, 합성곱 연산의 결과가 활성화 함수 ReLU를 지난다. 이 두 과정을 합성곱층이라고한다. 그 후에 POOL이라는 구간을 지나는데 이는 풀링 연산을 의미하며 풀링층이라고한다. 합성곱 신경망은 이미지 처리에 탁월한 성능을 보이는 신경망이다. 이미지 처리를 하기 위해 다층 퍼셉트론을 사용할 수 있지만 한계가 있었다. 그 이유로는 2차원 텐서 구조의 이미지를 1차원 배열로 변환하여 사용하였기 때문이다. 1차원으로 변환하였기 때문에 공간적인 구조 정보가 유실된 상태이기때문에 성능이 떨어진것 이다. 이미지의 공간적인 구조 정보를 보..

과적합(Overfitting)이란? 과적합은 기계 학습 모델이 학습 데이터에 대한 정확한 예측을 제공하지만 새 데이터에 대해서는 제공하지 않을 때 발생하는 바람직하지 않은 기계 학습 동작한다. 데이터 과학자는 기계 학습 모델을 사용하여 예측을 수행할 때 먼저 알려진 데이터 세트에 대해 모델을 훈련시킨다. 그런 다음 이 정보를 기반으로 모델은 새 데이터 세트에 대한 결과를 예측하려고 시도한다. 과적합 모형은 부정확한 예측을 제공할 수 있으며 모든 유형의 새 데이터에 대해 제대로 수행되지는 않는다. 과적합을 막는 방법들 1. 데이터 양을 늘리기 모델은 데이터의 양이 적을 경우, 해당 데이터의 특정 패턴이나 노이즈까지 쉽게 암기하기 되므로 과적합 현상이 발생할 확률이 늘어난다. 그렇기 때문에 데이터의 양을 늘..

퍼셉트론 이란? 퍼셉트론(Perceptron)은 프랑크 로젠블라트(Frank Rosenblatt)가 1957년에 제안한 초기 형태의 인공 신경망으로 다수의 입력으로부터 하나의 결과를 내보내는 알고리즘이다. 실제 뇌를 구성하는 신경 세포 뉴런의 동작과 유사하다. 퍼셉트론의 정의에서 다수의 입력으로부터 하나의 결과를 내보내는 알고리즘이라고 했다. 왼족의 그림과 같이 다수의 입력 x들에 각각 가중치 W를 곱해 출력값 y를 만들어내는 알고리즘 이다. 이때 가중치W의 값이 클수록 해당 입력 값이 중요하다는것을 의미한다. 가중치가 곱해진 입력값들을 통해 출력값을 변경시키는 함수를 활성화 함수(Activation Finction)이라고 한다 퍼셉트론은 단층 퍼셉트론, 다층 퍼셉트론으로 나눌 수 있다. 단층 퍼셉트론은..