전체 글
-
리눅스 서버 배포환경 구축하기 1 - CentOS7 설치Infra 2021. 5. 16. 19:30
운영환경에 대한 공부를 위해 리눅스 CentOS를 설치하고 배포환경을 구축하기로 했습니다. 이 포스트는 다른분들의 포스트를 보고 따라하며 겪었던 문제들을 위주로 정리하고 개인적인 복습을 목적으로 작성했기 때문에 자세한 내용은 없을 수 있습니다. 목표 CentOS7 + Apache(Web Server) + Tomcat(WAS) + Jenkins(CI) + PostgreSQL(DB) 리눅스에 간단한 Spring프레임워크로 만든 서비스를 올리는 것을 목표로 잡았습니다. 구축환경 데스크탑 남는 하드디스크에 리눅스(CentOS7) 인프라 서버형태로 설치 데스크탑 - 유선 공유기 - 노트북 연결 데크스탑 CentOS로 부팅 / 노트북에서 SSH Tool-MobaXterm 으로 접속 가상화툴이나 AWS를 사용해도 되..
-
리눅스 Shell2 - file merge, splitInfra 2021. 5. 15. 19:30
파일처리가 밀려 대량의 파일을 처리해야는경우 작업속도를 위해 파일들을 병합(merge), 분할(split) 해야하는 일이 생겼습니다. 이를 위한 쉘을 만들어봤습니다. 작업순서 대상파일 목록 저장 -> 배열 파악한 대상은 임시폴더로 이관 원본파일들을 작업경로 복사 원본파일 데이터들을 하나의 파일로 병합 데이터 건수비교, 맞으면 복사해온 원본파일 삭제 (용량 정리) 병합한 파일을 레코드 수 기준으로 분할 처리가능한 파일명으로 변환 파일의 정상생성을 알리는 .FIN파일 생성 최종 경로로 복사 경로 src1 : 변환된 파일 저장경로 (대상파일목록 수집경로) src2 : 원본파일 보관경로 mns : 파일병합 및 분할 작업 경로 tgt : 결과파일 저장 경로 Shell Script 작성 필요한 기능과 작업순서를 고..
-
간단한 Log Backup Shell 만들기Infra 2021. 5. 14. 19:30
보통 시스템을 운영하면 일자별로 로그파일이 생성되고, 일정기간이 지난 로그는 따로 백업을 하게 됩니다. (해당 디렉토리 용량부족 등의 이유로 진행) 리눅스 환경에서 로그파일 백업을 자동화 하기 위해 shell을 등록하고 자동화하는 작업을 진행했습니다. 매번 할때마다 익숙치 않아서 복습 겸 정리하게 됐습니다. LOG BACKUP SHELL 기능 특정월의 로그파일들을 .gz으로 압축한다. 로그파일의 포맷은 test_yyyymmdd.log 으로 되어있다. 파라미터로 해당월을 입력받지 않으면 M-1월 파일들을 백업한다. 백업할 대상이 없으면 처리하지 않는다. 압축한 파일을 백업 디렉토리로 옮긴다. 원본 로그파일들은 삭제한다. 위와 같은 기능을 생각하고 만들었습니다. LOG BACKUP SHELL 필요요소 sou..
-
ChainedTransactionManagerSpring 2021. 3. 9. 22:18
ChainedTransactionManager TransactionManager를 연결, 분리된 Transaction들의 Commit이나 Rollback을 보장함 두 개 이상의 데이터베이스 트랜잭션을 연결해야하는 경우 사용할 수 있습니다. (사실 정말 트랜잭션을 묶어야하는건지 생각을 해봐야합니다. 분리할 수 있다면 어플리케이션 레벨에서 트랜잭션을 보장해주는 방법도 고려해봐야 할 것 같습니다.) ChainedTransactionManager 생성자 ChainedTransactionManager는 2개 이상의 TransactionManager를 연결할때 사용할 수 있습니다. 내부 동작에 대해서 파악해보겠습니다. public class ChainedTransactionManager implements Plat..
-
Stream, 왜 재사용 할 수 없을까Java 2021. 3. 1. 18:04
Stream Stream 이란? A sequence of elements supporting sequential and parallel aggregate operations. Oracle Java8 Document를 보면 위와 같이 순차 및 병렬 집계 작업들을 지원하는 일련의 요소들 이라고 나와있다. Stream을 이용하면 컬렉션 데이터를 처리하는데 필요한 기능들 (ex> 특정 조건에 맞는 대상 수집, 정렬, 특정객체로 변환)을 연결하여 간결하게 처리가 가능하다. 만약 7천원 이하 메뉴들의 이름을 확인해야할 경우 아래처럼 구현할 수 있다. public class Menu { private String name; private int price; public Menu(String name, int pric..
-
우아한 테크캠프Pro, 우아한형제들 기술면접 돌아보기일반, 회고 2021. 3. 1. 14:12
배운것 객체지향 설계, JPA, 레거시코드 리팩토링, CI/CD 업무를 할때 중점적으로 생각해야할 것들 작년 12월 부터 올해 1월까지 9주동안 우아한테크캠프Pro 과정을 수강하고 우아한형제들 1차 기술면접을 봤던 경험을 돌아봤습니다. 1차 면접에서 탈락했지만 앞으로 기술적인 깊이를 키우는데 집중하며 업무를 해야겠다는 생각을 하게되는 좋은 시간이었습니다. 우아한테크캠프Pro 우아한테크캠프Pro는 경력직을 대상으로 진행한 채용연계 교육과정입니다. 약식의 지원동기와 사전과제를 통해 40명을 선발하여 9주 동안 TDD, 레거시코드 리팩토링, CI/CD등 개발능력을 업 시킬 수 있는 내용들을 배웠습니다. 가장 좋았던 점은 코드리뷰를 동반한 미션중심의 과정이라는 점입니다. 비율로 보자면 강의 30%, 미션 70%..
-
REST, REST APISpring 2019. 11. 4. 00:00
REST와 REST API에 대한 강연 내용을 복습차원에서 요약했습니다. #REST 분산 하이퍼미디어 시스템(ex>웹)을 위한 아키텍쳐 스타일 * 아키텍쳐 스타일 - 제약조건의 집합 제약조건 CLIENT - SERVER STATELESS CACHE UNIFORM INTERFACE SELF-DESCRIPTIVE MESSAGES HATEOAS (hypermedia as the engine of application state) LAYERED SYSTEM CODE-ON-DEMAND 다른제약조건들은 대부분 지켜지지만 4번째 (uniform interface) 는 잘 지켜지지 않고 있다고 합니다. 그 중에서도 self-descriptive messages 와 HATEOAS 가 잘 지켜지지 않는다고 합니다. ## ..
-
spring-data-redis 테스트 (local, remote 테스트)Spring 2019. 10. 28. 00:00
이 포스트에서 다룬 내용들입니다. Embedded Redis Server 를 사용한 테스트 / SpringBoot + spring-data-redis (lettuce) + embedded redis Remote Redis Server를 사용한 테스트 / SpringBoot + Redis Server (CentOS 7) redis서버와 spring-data-redis api 사용법에 대해 학습한 내용을 정리한 것입니다. 소스는 깃헙에 있습니다. # Embedded Redis를 활용한 로컬 테스트 로컬테스트는 이동욱님의 SpringBoot Data Redis 로컬/통합 테스트 환경 구축하기를 보고 진행했습니다. 그렇기때문에 기본적인 소스와 구조는 이동욱님의 예제와 동일하게 구성되어 있습니다. 다른점이 있다면..