ETC 12

동기와 비동기 그리고 블로킹과 논블로킹

동기와 블로킹, 비동기와 논블로킹에 대해 헷갈리는 경우가 있습니다. 하지만 자세히 보면 두 개념은 기준이 다른 개념입니다. 간단한 설명과 함께 각 개념을 정리해보겠습니다. 먼저 설명에 앞서 아래와 같이 함수명을 정의하고 시작하겠습니다. - 요청한 함수 : Func A - 요청된 함수 : Func B 먼저 동기와 비동기에 대한 설명입니다. 동기 (Sync) - Func A가 Func B를 요청하고 작업이 완료되었는지 계속 확인 - 결과가 주어질 때까지 대기해야 한다 비동기 (Async) - Func A는 요청 후 신경 쓰지 않고 다른 작업을 계속 처리 할 수 있음 - Func B가 작업을 마치면 Call back 으로 알려줌 동기와 비동기의 가장 큰 차이점은 완료여부를 확인하는 주체의 차이로 볼 수 있습니..

ETC 2022.06.13

[gUnicorn 이슈] WORKER TIMEOUT 에러

이번 글에서는 간단하게 에러 발생 원인과 해결 방안에 대해서 정리해보겠습니다. gUnicorn을 사용하여 Flask 서버를 구동 시 아래와 같은 에러가 발생하는 경우가 있습니다. [CRITICAL] WORKER TIMEOUT (pid:00000) 제가 겪은 위 에러가 발생한 상황에 대해서 정리하자면 다음과 같습니다. 1. DB 또는 다른 서버와의 통신이 불가할 경우 해당 경우는 다른 DB 또는 서버와 통신이 불가하여 Connection Timeout이 발생하였고, 이로 인해 gUnicorn에서도 Timeout이 발생한 경우였습니다. 위의 경우 Timeout이 발생하는 서버와의 통신을 허용해주면 됩니다. 2. Flask 구동 전 수행되는 로직이 너무 오래 걸릴 경우 저의 환경에서 gUnicorn의 Time..

ETC 2020.12.07

[MyBatis] if와 foreach를 활용하여 동적 쿼리생성 (필터링 기능)

● MyBatis - if와 foreach를 활용하여 동적 쿼리 생성 MyBatis에서 if와 foreach를 활용하여 동적 쿼리를 생성하는 방법에 대해 정리하겠습니다. 그리고 이를 이용하면 간단한 검색 필터링 기능을 쉽게 구현할 수 있습니다. 이 내용에 대한 예제를 통해 간단히 정리해보겠습니다. ■ MyBatis에서의 if와 foreach 먼저 MyBatis에서의 if와 foreach에 대해 살펴보겠습니다. 이름 그대로 if는 조건문이며, foreach는 반복문에서 사용됩니다. 사용방법은 다음과 같습니다. 해당 조건에 참일 경우만 내부의 쿼리문이 더해집니다. {QUERY 문} 다음으로 foreach의 사용법은 다음과 같습니다. collection에는 전달받은 파라미터값이 들어가며, item은 실제 쿼리..

ETC 2019.12.18

[Thymeleaf] URL 표현하기 (th:href)

● Thymeleaf URL 표현하기 Thymeleaf에서 url을 표현하는 몇가지 방법에 대해 정리하겠습니다. ■ Absolute URL Absolute URL을 사용하면 특정 url로 직접 이동이 가능합니다. 가장 기본적인 a태그 사용법이라고 보시면 됩니다. 사용방법은 아래와 같습니다. ■ Context-relative URL 두번째는 가장 많이 사용되는 유형인 context-relative URL입니다. 간단히 말해서 우리 서버 내 특정 위치로 이동이 가능하도록 하는 URL입니다. 아래 예시는 서버 내 리소스 /order/list를 호출합니다. 사용방법은 아래와 같습니다. ■ Adding Parameter URL 세번째는 파라미터를 추가하는 방식의 URL입니다. https://www.test.io/..

ETC 2019.04.27

[TextWrangler] Format JSON Filter 적용

■ TextWrangler- Format JSON Filter 적용 Mac에서 유용하게 사용할 수 있는 무료 Editor 중 하나로 TextWrangler가 있습니다. (https://itunes.apple.com/kr/app/textwrangler/id404010395?mt=12) 간단한 Text는 물론 HTML, java script 코드 등을 쉽게 열고 편집할 수 있는데요. 기본적으로 JSON Format에 대해서는 쉽게 볼 수가 없어 아쉬웠습니다. 그래서 간단한 python파일을 하나 만들어서 Format JSON Filter를 적용해보고자 해요. 방법은 매우 간단합니다. 1. TextWrangler 설치 경로에 JSON.py라는 파일을 생성합니다. ~/Library/Application\ Sup..

ETC 2018.06.27

[Nginx] 설치하고 사용하기

■ [Nginx] 설치하고 사용하기 오늘 포스팅에서는 Nginx 서버를 설치하고 사용하는 방법을 정리해보겠습니다. Nginx란, 웹서버의 종류 중 하나로 가벼움과 높은 성능을 목표로 하고있습니다. 이러한 이유로 최근 그 사용도가 상승세에 있습니다. 2018년 3월 27일 기준 점유율은 아래와 같습니다 (출처 : netcraft.com) 곧 Apache를 따라잡을 것 같군요. 그럼 이제 Nginx의 설치방법을 먼저 확인해보겠습니다. ● Nginx 설치 Nginx 설치방법은 다양합니다. 그 중 몇가지에 대해서만 정리해보겠습니다. 먼저 첫 번째 방법은 yum을 사용한 방법입니다. yum install nginx 두 번째 방법은 brew를 이용한 방법입니다. homebrew에 대해서는 앞선 포스팅에서 알아보았었..

ETC 2018.04.09

[HTML] 리스트 태그 (ul, ol, dl)

■ HTML - 리스트 태그 (ul, ol, dl) 오늘은 간단하게 html에서 사용하는 리스트 태그에 대해 정리하겠습니다. 크게 , , 태그 3가지에 대해 정리하겠습니다. ● 태그ul태그는 unordered list의 약자입니다. 즉 순서가 필요없는 리스트를 뜻하는 태그죠. 사용 예시를 보면 이해가 더욱 쉬울 것 같네요. 리스트1 리스트2 ● 리스트1● 리스트2 위의 ul 태그의 기본 type은 disc로 ●마크가 표기되는게 보이시죠. 총 3가지 type이 존재합니다.- ● : disc- ○ : circle- ■ : square ● 태그 ol태그는 ordered list의 약자입니다. 즉 순서가 있는 리스트를 뜻하는 태그죠. 여러 타입을 활용하여 순서가 있는 리스트를 표시해줍니다. 리스트1 리스트2 1..

ETC 2017.10.06

[Cron] 크론(cron) 표현식 정리

■ Cron (크론) cron이란? 유닉스 계열의 잡 스케줄러 ● Cron 표현식 - 필드 Cron 스케줄러의 정규 표현식입니다. 7개의 각 필드로 구성되어 있으며, 각 필드의 내용은 아래와 같습니다. 자세한 설명은 위키백과를 참고하시면 됩니다 (물론 영어입니다...)(https://en.wikipedia.org/wiki/Cron#CRON_expression) 필드명 값의 허용 범위 허용된 특수문자 초 (Seconds) 0 ~ 59 , - * / 분 (Minutes) 0 ~ 59 , - * / 시 (Hours) 0 ~ 23 , - * / 일 (Day) 1 ~ 31 , - * ? / L W 월 (Month) 1 ~ 12 or JAN ~ DEC , - * / 요일 (Week) 0 ~ 6 or SUN ~ SA..

ETC 2017.07.26

[CDATA] CDATA란

■ CDATA CDATA란 무엇인지에 대해 간략히 정리하겠습니다. ● CDATA 정의 CDATA는 보통 javascript에서 아래와 같이 사용하는데요. 저 사이에 코드가 들어가게되죠. 그럼 이 CDATA는 무슨 의미를 뜻할까요? MSDN (MS Developer Network)에 정의된 CDATA Sections는 다음과 같습니다. CDATA sections provide a way to tell the parser that there is no markup in the characters contained by the CDATA section. This makes it much easier to create documents containing sections where markup character..

ETC 2017.07.01

[비트코인과 랜섬웨어] 그 상관관계 ?

■ Bitcoin Ransomware 최근 비트코인의 가치가 사상최대인 1,500달러를 돌파하였다고합니다. 비트코인이 무엇인지? 그와 연관이 깊은 랜섬웨어는 무엇인지에 대해 알아봅시다 ● 비트코인 비트코인이란, 기존 화폐와 달리 물리적인 형태가 없는 온라인 가상화폐입니다. 최초 비트코인이 생겨날 때는 기존 화폐의 대안으로 주목을 받았습니다. 은행이나 정부 등의 개입 없이 개인과 개인이 익명으로 거래할 수 있기 때문에, 악용의 소지가 많았으나, 지금까지 그 가치가 점점 올라가며 유지 중에있습니다. 그만큼 편리한 부분 또한 매우 많다고 할 수 있고 생각보다 많이 사용되고 있습니다. 국내에서도 비트코인거래소가 많이 생겨나며, 그 거래액도 점차 늘어나는 추세입니다. 국내에서만 하루 평균 150억이 넘는 금액(약..

ETC 2017.05.07