전체 글

공부하면서 정리하는 블로그입니다. 틀린 내용이나 피드백 적극 환영합니다^^
· devops
1. 개요현재 회사에서는 CI/CD 환경이 구축되어 있지 않다. 애플리케이션 변경 사항이 빈번하게 발생하고 매번 로컬에서 빌드하고, 빌드된 jar 파일 config 등을 직접 서버에 SFTP로 개발/운영 다수의 서버에 배포를 하고 있다.(배포할 때마다 신경 쓸 것도 많다......)   이번 기회에 사수님께 말씀드리고 CI/CD 를 구축해 보기로 했다. 2. CI/CD 란?a. CI(Continuous Integration) - 지속적 통합요즘은 개발자가 소스코드를 Git으로 관리하고, GitHub나 Gitlab과 같은 원격 저장소를 통해 여러 개발자들과 소스코드를 공유하고 있다.  원격 저장소에 공용으로 사용하는 Repository를 생성하고, 각 개인은 브랜치를 생성하여 작업한다. 이..
김영한님의 스프링 MVC 1편 강의를 듣고 정리하는 글입니다 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 | 김영한 - 인프런 김영한 | 웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습 www.inflearn.com 1. 개요 스프링 MVC에서는 HTTP 헤더, 쿼리파라미터, 메시지 바디 등 개발자가 일일이 변환할 필요 없이 스프링 mvc가 원하는 타입(InputStream, byte[], String, 객체 등)으로 요청과 응답을..
1. 개요프로젝트를 진행하면서, 코드 변경이나 기능 업데이트가 될 때마다 불안한 마음이 들었다. 매번 여러 시나리오를  테스트하기 위해 스프링부트를 실행해서 API를 호출하고, 정상동작 여부를 확인하는 것은 번거롭고 시간도 많이 걸린다.   잘 짜여진 테스트코드만 있으면 기능 변경되어도 테스트 코드에서 검증이 가능하기 때문에 안정성을 확보하면서 개발이 가능하다. 그리고 테스트 코드의 또 다른 장점은 테스트 코드만 봐도 어떤 의도로 개발되었는지 쉽게 이해할 수 있다. 테스트 프레임워크로는 JUnit5과 Mockito를 사용했다.   2. Mockito란?Mockito는 JAVA 오픈소스 프레임워크로 단위테스트를 위해 모의 객체(Mock Object)를 생성하고 관리하는데 사용된다.  Mo..
김영한님의 스프링 MVC 1편 강의를 듣고 정리하는 글입니다 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 | 김영한 - 인프런 김영한 | 웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습 www.inflearn.com 1. 개요 지난 포스팅에서 스프링 MVC와 유사한 MVC 프레임워크를 직접 만들어보았다. https://soonmin.tistory.com/81 [Spring] 스프링 MVC 1편(MVC 프레임워크 만들기) 김영한님의 ..
1. 개요 지난 포스팅에서 파이썬을 활용하여 업무 자동화에 대해 정리했었다. https://soonmin.tistory.com/82 [fabric] fabirc 사용한 업무 자동화 구축 1. 개요 프로세스를 개발하고, 서버에 배포한 뒤 정상적으로 동작하는지 확인이 필요하다. 나는 매일 로컬환경에서 다수의 배포서버에 SSH로 접속해서 로그파일들을 확인해야 했다. 반복 작업을 soonmin.tistory.com 이번에는 자동화 구축된 결과를 파일저장, 메일전송뿐만 아니라 로컬 db(sqlite)로도 관리하고 싶어, 파이썬에서 DB와 상호 작용하기 위한 기술들을 찾아보았다. 다양한 DB(PostgreSQL, sqlite 등)에 호환되어야 하므로 ORM 기반의 SQLAlchemy를 사용하기로 결정했다. 나는 모..
· devops
1. 개요프로세스를 개발하고, 서버에 배포한 뒤 정상적으로 동작하는지 확인이 필요하다. 나는 매일 로컬환경에서 다수의 배포서버에 SSH로 접속해서 로그파일들을 확인해야 했다. 반복 작업을 줄이기 위해 자동화를 구축 하기로 했다.    2. 설계 및 사용 기술설계한 내용은 다음과 같다. 1. 프로그램이 다수의 서버에 ssh로 접속한다.2. 내가 지정해놓은 shell 명령어를 각각 실행한 다음, 결과를 가져온다.   3. 출근하면 자동으로 1, 2번 동작을 실행할 수 있게 스케줄러를 사용하고, 결과를 파일로 저장하고, 메일로 전송하도록 한다.  이해를 돕기 위해서 내가 처한 서버 환경에 대해서 설명하겠다.개발 서버는 로컬에서 직접 접속이 가능하다. 하지만 운영서버는 보안상의 이유로 로컬에서 직접 접속을 할 ..
김영한님의 스프링 MVC 1편 강의를 듣고 정리하는 글입니다 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 강의 - 인프런 웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., 원 www.inflearn.com 1. 개요 이전 포스팅에서 jsp와 서블릿을 사용하여 mvc 패턴을 적용해보았다. https://soonmin.tistory.com/80 [Spring] 스프링 MVC 1편(서블릿, JSP MVC 패턴) 김영한님의 스프링 M..
김영한님의 스프링 MVC 1편 강의를 듣고 정리하는 글입니다 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 강의 - 인프런 웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., 원 www.inflearn.com 1. 개요 이전 포스팅에서 서블릿만을 사용하여 HTML 문서를 동적으로 생성하여 뷰로 표현 해보았다. https://soonmin.tistory.com/79 [Spring] 스프링 MVC 1편(서블릿) 김영한님의 스프링 MV..
김영한님의 스프링 MVC 1편 강의를 듣고 정리하는 글입니다 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 강의 - 인프런 웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., 원 www.inflearn.com 1. 스프링부트 서블릿 환경 구성 @ServletComponentScan // 서블릿 자동 등록 @SpringBootApplication public class ServletApplication { public static ..
김영한님의 스프링 MVC 1편 강의를 듣고 정리하는 글입니다 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 강의 - 인프런 웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., 원 www.inflearn.com 1. 웹서버와 웹 애플리케이션 서버 a. 웹 서버(Web Server)란? HTTP 기반으로 동작 정적 리소스(HTML, CSS, JS, 이미지, 영상 등)를 제공 ex) NGINX, APACHE b. 웹 애플리케이션 서버(..
kmindev
평생쓰는 IT 개발 노트