개념 데드락이란 두개 이상의 프로세스가 필요한 자원을 얻지 못해 상대방의 작업이 끝나기만을 무한정 기다려 아무 작업을 하지 못하는 상태를 가리킵니다. 위 그림은 다중 쓰레드 프로그래밍 환경에서 흔히 발생하는 데드락 문제입니다. Thread2는 A를 점유하고 있으면서 B의 자원을 요청, B의 자원을 습득할 때 까지 대기 Thread3는 B를 점유하고 있으면서 A의 자원을 요청, A의 자원을 습득할 때 까지 대기 서로 상대방이 자원을 내놓기를 바라면서 무기한 연기에 빠지는 상황 시스템 파일이나 다른 프로그램이 공유하는 파일을 건드리기 쉬운 프로그램은 설치 과정에서 "프로그램을 설치할 때는 "가능하면 다른 프로그램은 꺼주세요"라는 문장이 나오면서 모든 프로그램이 꺼지는 경우가 있는데, 이유는 데드락이 발생할 ..
목표nextstep TDD 클린코드 수강아이티 동아리 지원 (면접 연습 하기)엠브레이스 대형 프로젝트 백엔드 주도할 수 있도록 빡공하기 (만 1년차가..?)책 꾸준히 읽기운동하기(28살부터 힘듬...) 읽은 책 읽고 있는 책-실전자바소프트웨어개발 읽어야 될 책- 모던자바인 액션- 단위테스트- 클린코드- 이펙티브 자바 본 강의- 디자인 패턴(백기선) 봐야될강의- 스프링 고급(김영한) 명언김영한님- 한달안에 특정책 다볼꺼야 -> 달성하기 힘듬- 시스템화하라 -> 하루 2시간 알고리즘 등 1월- 과장님 퇴사 후 정신차림- 회사에 젠킨스, gitlab 도입- 보안팀에서 ssh 안뚫어줌 ㅡㅡ 2월- 대형 프로젝트 결정- 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
배경 /home/tomcat1 /home/tomcat2 /home/tomcat3 하나의 서버에 여러 톰캣을 구축하여 가동중에 있습니다. 톰캣 배포는 보통 아래의 과정을 거칩니다. webapps폴더안의 기존 ROOT.war 백업 -> 톰캣 shutdonw -> 기존 ROOT.war, ROOT폴더 제거 -> 새로운 war파일 webapps로 이동 -> 톰캣 실행 이러한 과정을 명령어로 일일이 치는것도 귀찬흥ㄴ데 배포해야할 프로젝트가 여러개 있으면 매우 귀찮습니다. 그래서 이러한 과정을 한번에 실행할 수 있는 쉘스크립트를 만들어 봤습니다. 사전 조건 프로젝트 폴더명이랑 war파일 이름이 같아야 합니다. 톰캣 경로 : /home/tomcat1/... 배포할 war 파일 이륾 : tomcat1.war gradle..
인덱스 이론 개념 DBMS에서의 인덱스는 저장 성능을 희생하고 검색 성능을 높이는 기능입니다. 1000페이지가 넘는 토비의 스프링 같은 책과 비유하자면 다음과 같습니다 책의 맨 처음이나 끝에 존재하는 색인 = DBMS의 인덱스 책의 내용 = DBMS의 데이터 파일 책의 색인을 통해 알 수 있는 페이지 번호 = DBMS의 데이터 파일에 저장된 레코드의 주소 책의 색인은 사전 순으로 정렬 = DBMS의 인덱스도 일정 기준으로 정렬 가능 종종 책의 목차를 인덱스로 비유하는데 정확히는 아닙니다. 왜냐하면 책의 목차는 문자열 등 특정 기준으로 정렬되어 있지 않기 때문입니다. 색인의 특징 색인의 특징을 자세히 알아보겠습니다. 책에 있는 모든 용어가 아닌 자주 찾아보는 핵심 용어만 간추려서 정리했습니다. 효율적인 검..
💡 OSI 7계층에 대한 전반적인 개념을 이번 글 포스팅 하나로 학습하고자 내용이 다소 많습니다. 스크롤을 내려 오른쪽의 목차를 이용하여 원하는 부분만 보실 수 있습니다. 개념 OSI 7계층이란 국제표준화기구(ISO)에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것이다. (나무위키) 쉽게 말하면, 네트워크에서 통신이 일어나는 과정을 7계층으로 나눈 모델입니다. OSI 7계층이 탄생한 배경 OSI 7계층이 탄생하기 이전에는 회사마다 독자적인 장비 구조가 대다수 였습니다. 결국 같은 회사의 컴퓨터끼리만 네트워크를 연결할 수 있었고 서로 다른 기종간의 네트워크 필요성이 대두되었습니다. 위와 같은 호환성 이슈를 방지하고 모든 시스템들 간의 상호 연결에 문제가 없도록 ISO..
POST 컨트롤러 호출시 @RequestBody로 요청받는 Request의 dto는 다음과 같습니다. public class Request { private String name; private ColorType colrType; private String redApple; private String greenApple; private String redOrange; private String greenOrange; //getter, setter ... public enum ColorType { RED, GREEN } colorType의 값이 RED면 redApple과 redOrange의 값은 필수, GREEN면 greenApple과 greenOrange의 값에 대한 필수값 체크를 하고 싶었습니다. 우선..
구글링해서 조사해보면 설정방법은 많이 나오니 생략.. 내가 2~3 시간째 삽질한걸 기록 processResources.dependsOn('copySecret') task copySecret(type: Copy) { from './submodule/application-aws-s3.yml' //submoduole에 추가한 노출되면 안되는 파일 into './src/main/resources' //build시 from에 지정한 경로의 파일을 복사할 위치 } 계속 구글링 하다보면 여기까지 설정한 자신을 볼 수 있다. 문제는 gradle에서 아무리 build하고 jar파일을 까봐도 yml이 없었음;; gradle을 리로드 하면 task {작업명} 으로 입력한 copySecret가 other 쪽에 추가된걸 확인할..
gradle init settings.gradle 설정 /* * This file was generated by the Gradle 'init' task. * * The settings file is used to specify which projects to include in your build. * * Detailed information about configuring a multi-project build in Gradle can be found * in the user manual at https://docs.gradle.org/6.8.3/userguide/multi_project_builds.html */ rootProject.name = 'security' ["comp", "web", "s..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.