본문 바로가기
반응형

전체 글1072

Context Switch(컨택스트 스위치) 란? 일단 해당 주제를 다루기 전에 프로세스에 대해서 개념이 정확히 잡히지 않았다면 아래 참고 포스팅을 보고 오는것을 추천한다. 멀티프로세스 환경에서 CPU 는 어떤 하나의 프로세스를 실행하고 있는 상태에서 인터럽트 요청에 의해 다음 우선 순위의 프로세스가 실행 되야할 때 기존의 프로세스의 상태 또는 레지스터 값을 저장하고 다음 프로세스를 수행하도록 새로운 프로세스의 상태 또는 레지스터 값을 교체하는 작업을 Context Switch(ing) 이라고 한다. 영어 이름을 그대로 번역을 한다면 문맥 교환 이라는 뜻이지만 이렇게 번역은 IT에서 옳지 않다. 그럼 좀더 자세하게 설명으로 들어가서 여기서 말하는 Context 란? 사용자들 간이나 혹은 시스템, 디바이스 등 상호작용에 영향을 미치는 것을 규정하는 정보를.. 2022. 9. 12.
md 파일을 위한 툴(Typora) git을 사용하다보면 대표적으로 가장 많이 보는 파일중 하나가 README.md 파일이다. 항상 브라우저에서만 보다가 해당 파일을 다운받아서 읽어보려고 하니 mac에서는 자동으로 XCode가 열렸다. 하지만 텍스트는 보이는데 이미지는 하이퍼링크로 나오는게 문제였다. md파일을 읽기 위해서 뷰어를 찾아보다가 window, mac, linux 등에서 모두 호환이 되는 툴을 찾았는데 Typora 툴이다. md파일이라고 하면 markdown 파일인데, 해당 에디터? 뷰어는 반응이 빠르고 특정 버전이하(베타) 에서는 무료도 제공을 하고, 본 release 도 부담스러운 가격이 아니라서 괜찮은 것 같다. --추후에 노트북을 바꿔도 해당 에디터를 까먹지 않기 위해 포스팅으로 남겨둔다. 2022. 9. 11.
Podman(RedHat) 지금의 개발 시대는 클라우드, MSA, 분산 등의 단어가 빠지면 이상할 정도로 개발의 추세가 로컬, 네이티브, 프라이빗한 환경에서 많이 변화해왔다. 그러면서 중요시되는 게 몇 가지 있는데 그중 하나는 docker와 k8s이다. 이 둘에 대한 설명은 아래 참고 포스팅에서 확인을 해보도록 하자. 짧게 설명을 하면 도커는 컨테이너 기반으로 동작을 하게 된다. 도커가 2017년도에 엔터프라이즈 버전을 상용화하면서 레드햇은 또 다른 컨테이너 기반의 오픈소스 기술인 Podman을 사용하여 레드햇의 엔터프라이즈 제품들을 출시하였다. 레드햇은 이미 출시한 RedHat Enterprise Linux에 Podman을 탑재시켰고 릴리즈 된 RedHat OpenShift Container Platform 4와 RedHat O.. 2022. 9. 10.
Spring REST Docs 데이터베이스와 통신하는 방식 중에 하나로 REST 통신이 있다. REST통신에 대해서는 아래 참고 포스팅을 확인해보면 도움이 될것이다. REST 를 활용하여 api 를 만들게 된다. 그러면서 정리 문서를 만들어야 하는 때가 온다. 얼마전 포스팅에서 문서화 관련 javadoc 관련 포스팅을 작성하기도 하였고, 참고 포스팅을 확인해보도록 한다. 하지만 해당 javadoc 은 주석 기반으로 문서를 만들어주는것이고 오늘 소개할 REST Docs 의 특징은 아래와 같다. 테스트 코드 기반으로 Restful API 문서를 돕는 도구 Asciidoctor를 이용해서 HTML 등등 다양한 포맷으로 문서를 자동으로 출력할 수 있음 RestDocs의 가장 큰 장점은 테스트 코드 기반으로 문서를 작성하는 점 API Spec.. 2022. 9. 9.
15 Factors 얼마전 포스팅에서 12 factors 에 대한 주제를 다룬적이 있다. 간단히 말하면 애플리케이션을 개발하거나 운영, 확장 등을 할때 개발 엔지니어와 회사로부터 얻은 노하우를 바탕으로 정리한 개발 방법론이다. 자세한 사항은 아래 참고 포스팅을 확인해보길 바란다. 공부를 하다보니 몇년 전 12factors 에 3가지를 추가해서 현재는 15가지라는 글을 보았고 포스팅을 추가 업데이트 해야겠다는 생각을 하였다. 3가지는 다음과 같다. API 우선 (API First) API 설계를 우선하여, 코드를 작성하기 이전에 설계하고자 하는 서비스의 의도와 기능을 명확하게 할수 있어야 한다. 관측 (Telemetry) 애플리케이션 성능 모니터링, 애플리케이션이 처리하는 초당 HTTP 요청의 평균 개수 등과 같이 비지니스에.. 2022. 9. 8.
[mac setting .m1pro] brew 로 설치한 httpd 문제 해결 오랜만에 httpd 를 실행하려니 이상한 에러가 나왔다. 분명 success인데 안되었다... 다음 에러이다. Successfully started `httpd` (label: homebrew.mxcl.httpd) 자세한 에러도 안나온다. 이럴때는 apachectl start 라고 명령어를 실행하면 자세한 에러가 나온다. (이번 경우엔 libphp7.so 관련해서 경로를 못찾아서... 저번에 실수로 brew update 를 실행해서 인지 php 가 자동으로 최신버전인 8.1 버전으로 셋팅되어있었다.) 그래서 brew remove php 로 php 를 전체적으로 지워주고 새롭게 설치를 하였다. 2022. 9. 6.
Spring Bean 등록(@Bean은 @Configuration 내에) 이전 포스팅에서 스프링에서 DI 와 IoC를 사용하기 위해서는 스프링에 Bean을 등록해줘야하고 그에 대한 내용은 아래 참고포스팅에서 알아볼수 있다. 하지만 스프링을 다루기 위해서는 가장 중요한 부분이라서 다시 한번 정리를 할겸 포스팅을 또 한번 다뤄보게 되었다. 수동으로 등록을 할수도 있고, 자동으로 등록해줄수 있다. 수동 방법은 다음과 같다. @Configuration public class ResourceConfig { @Bean public class classname() { return new NiceResource(); } } 이렇게 @Bean을 통해서 수동으로 넣어줄수 있고, Bean이 있는 class에는 Configuration annotation을 달아줘야한다. 물론 Configurati.. 2022. 9. 5.
12-Factor App 이란? Saas 기반이나 MSA 패턴 구조를 사용하며 개발을 할 경우에 프로그래밍 언어에 비종속적이며 DB, Queue, Memory-cache등과 조합할수 있는 방법론이 있는데, 그것이 바로 이 Twelve Factor 이다. 각 요소에 대해서 살펴보면. 1. 코드 베이스 버전 관리되는 하나의 코드베이스와 다양한 배포 각 Twelve-factor 앱은 각 코드베이스로 관리된다. 코드베이스는 Git, Mercurial, Subversion 같은 버전 컨트롤 시스템(VCS)을 사용하므로 변화를 추적하며, 버전 추적 데이터베이스, 즉 저장소(Repository)로 관리된다. 코드베이스와 앱 사이에는 항상 1:1 관계가 성립되어야 한다. 코드베이스가 여러개 있는 경우, 여러 앱으로 구성된 분산 시스템으로 간주하고 분.. 2022. 9. 4.
javadoc 관련 프로젝트 내에 수많은 자바 파일이 존재하고 개발자마다 성향은 다르지만 각기각색으로 주석을 코드에 남기곤 한다. 그러면서 인수인계 등을 위해 문서화를 해야할 일이 생길때도 있는데 지금까지 만든 파일들에 대해서 하나하나 찾아주면서 문서를 다시 작성을 해야한다. 이 작업을 편하게 만들어주는것이 javadoc이다. 자바 문서를 자동으로 읽어서 html 형식으로 설명, 하이퍼링크 등을 생성해준다. 자바독이라고 읽으며 형식을 맞춰서 생성 해야한다. 이클립스 상단 메뉴에서 Source > Generate Element Comment 를 선택한다. 그러면 파일 상단에 /** * @author Administrator * */ 이런 주석이 생긴다. 물론 커서 위치에 따라 생기는 주석은 다를수 있고 이런 주석 형식을 자바.. 2022. 9. 3.
반응형