JaeWon's Devlog
article thumbnail
Forward Proxy(포워드 프록시)와 Reverse Proxy(리버스 프록시) 정리

팀 회의 중 각 담당 업무 이슈에 관련 이야기를 나누다가 어떤 서버의 프록시 서버 설정에 문제가 있다는 이야기를 나누고 있었다. 그런데 팀장님이 갑잡스러운 질문을 하셨다. 팀장님 : 포워드 프록시랑 리버스 프록시 차이점을 알아??? 나 : 어...음... 포워드 프록시는 서버에서 들어오는 쪽이고, 리버스 프록시는 서버에서 나가는 쪽을 관리를 하는 것으로 알고 있습니다. 틀린 말은 아니였지만, 대답을 하고 나서도 정확히 어떠한 역할을 하고 무슨 차이가 있는지는 명확하게 떠오르지 않았다. 그렇기에, 이번 글에서 위 2가지에 대해 정리해보고자 한다. 1. Proxy(프록시) 란? - Proxy(프록시) 서버는 클라이언트(Client)가 자신을 토해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 컴..

article thumbnail
sync, async, blocking, non-blocking 정리

개발을 진행하다보면 sync, async, blocking, non-blocking 를 고려해서 개발을 해야할 때가 발생하고, 적절하게 사용해야만 한다. 위 개념들을 살펴보면 비슷한 내용인 것 같아 같아보이지만 관점에 따라 다른 기능을 제공한다. 단지 이 개념들을 서로 조합해서 사용되는 것 뿐이다. 동기(sync)와 비동기(async)는 프로세스의 수행 순서 보장에 대한 매커니즘이며, 블록킹(blocking)과 논블록킹(non-blocking)은 프로세스의 유휴 상태에 대한 개념이다. 이번 글에서는 위 개념들을 정리하고 비교해보고자 한다. 1. Sync VS Async 1-1. Sync(동기, Synchronous) - Sync(동기)는 동시에 일어난다는 의미를 가진다. - 요청과 결과가 동시에 일어난다..

article thumbnail
MarkDown 작성 요령
Tool, 이론 및 기타 2023. 1. 23. 18:08

참고!!! 해당 블로그에서는 티스토리 스킨으로 인해 기존 Markdown 형식처럼은 나오지 않습니다... 실제 비교는 깃허브 Readme.md 를 참고해주시기 바랍니다. 1. Headers(헤더) ~ 까지 가능하다.# This is a h1 tag ## This is a h2 tag ##### This is a h5 tag This is a h1 tag This is a h2 tag This is a h5 tag 2. Horizontal Rule(수평선) 아래 코드들 모두 사용 가능하다.--- *** ___ ****** 3. Line Breaks(줄바꿈) (띄어쓰기 두번) 4. Emphasis(강조) 사용하고자 하는 부분에 붙여서 사용한다._Italic(이탤릭)_ or *Italic(이텔릭)* **굵은 ..

article thumbnail
[Java] Lambda(람다) 사용 시 지역변수 사용하기(With. effectively final)
BackEnd/Java 2022. 12. 25. 10:40

Java 에서 Lambda 를 사용하면서 개발하던 도중 아래 에러 메시지를 보여주면서 빨간 줄이 그어져 있었다. Variable is accessed from within inner class needs to be final or effectively final 대충 직역해보면 "내부클래스(Inner Class)안에 있는 변수에 접근할 때는 그 값이 final 이나 effectively final 형태여야 한다." 이다. 원하던 로직은 Stream 을 사용해서 어떠한 값이 있는 경우 카운트를 하고 싶었다. 이 과정에서 지역변수(cnt)를 람다안에서 사용하고자 하니 위 에러가 발생하였다. int cnt = 0; memberList.stream().forEach(test -> { if(test.getTeam..

article thumbnail
[Intellij] github organization 연동 시 Clone failed 해결

개인적인 스터디 진행 시 개인 Github 로 진행이 아닌 모임에서의 다른 사람의 Repository 를 공유하여 진행할 때가 있다. 이러한 경우 Github 의 Organizations 기능을 활용하여 Repository 를 관리가 가능하다. 그러나, Organizations 되어진 Repository 를 Intelli J(인텔리제이)에 Clone 을 진행하려면 아래와 같은 에러가 발생한다. 정확한 내용은 모르겠지만, 구글링 해보았을 때 에러 내용은 보안 문제로 인해 해당 Github 주소를 불러올 수 없다는 것이었다. 인텔리제이로 Git Clone 시 계정인증을 요청하는데, 이때 2가지 방법이 있다. Log In via GitHub - Github 계정 연동 허용을 통해 로그인 log in with ..

article thumbnail
[ERROR] ONLY_FULL_GROUP_BY(Feat. MySQL)
Error 2022. 12. 17. 10:08

로컬 환경에서 MySQL 로 GROUP BY 를 하려고 하면 아래 에러가 발생하였다. select department_id, admission_year, count(1) as cnt from student_table group by department_id, admission_year ; Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'department_id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by 쿼리만 본다면 잘못..

article thumbnail
[Spring] MyBatis 사용 시 resultType 에 InnerClass 사용하기
BackEnd/Spring 2022. 12. 10. 10:50

종종 Spring + MyBatis 개발을 하던 도중에 ResultMap 또는 ResultType 에 InnerClass 로 선언하고자 하는 경우가 있다. 1. 파일 구성 - 간단하게 예제를 통해서 진행해보겠습니다. - ResultType 에서 사용하고자 하는 파일은 아래와 같습니다.(Response 를 사용) 실제 개발에서는 DB의 값을 그대로 전달하는 것은 좋은 방법이 아니지만, 간단한 테스트를 위해서 바로 사용하였습니다. public class TodoDto { @Builder @AllArgsConstructor @NoArgsConstructor public static class Request { private String item; private boolean completed; } @Data ..

article thumbnail
[ERROR] IndexOutOfBoundsException(With. MyBatis)
Error 2022. 12. 3. 11:47

1. 에러 발생 상황 - MyBatis(마이바티스) 를 통해서 DB 에서 데이터를 조회하려는 도중 아래와 같은 에러가 발생. ### Cause: java.lang.IndexOutOfBoundsException: Index 4 out of bounds for length 4] with root cause java.lang.IndexOutOfBoundsException: Index 4 out of bounds for length 4 at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64) ~[na:na] at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(..

article thumbnail
[DB] MySQL/MariaDB Pivot(피벗) 테이블 사용/만들기
BackEnd/DataBase 2022. 12. 1. 08:54

DB를 조회할 때 종종 행과 열이 바뀌어서 조회가 필요한 경우가 있습니다. RDB(관계형 DB)는 행과 열로 이루어져 있는데, 이 위치를 뒤바꾸는 것을 피벗(Pivot)이라고 합니다. Oracle 11g 에서는 해당 기능을 오라클에서 제공하지만, MySQL/MariaDB 는 따로 제공을 하지 않습니다. 해당 글에서는 MySQL/MariaDB 에서 피벗 형식으로 조회가 되도록 간단하게 예제를 진행해보도록 하겠습니다. 0. 테이블 - 현재 테이블의 구조 및 데이터는 다음과 같습니다. student_table department_table 1. Pivot 사용 전 - 두 테이블을 조인하여 연도별, 학과별 입학 인원을 조회하려고 합니다. - 학과에 입학인원이 없더라도, 0명으로 조회되어야 때문에 Outer Jo..

article thumbnail
[SpringBoot] CouchBase 연동하기
BackEnd/Spring 2022. 11. 27. 16:05

이전 글에서 NoSQL 을 로컬환경에 설치하는 것을 알아보았고, 해당 글에서는 SpringBoot 에서 CouchBase 를 연동해서 간단하게 테스트를 진행해보고자 합니다. 1. 환경 세팅 1-1. build.gradle - CouchBase dependency 를 추가해줍니다. implementation 'org.springframework.boot:spring-boot-starter-data-couchbase' 1-2. CouchBase 실행(Mac) - 이전 글에서 Docker 를 통해 설치한 CouchBase 를 실행합니다. docker run -d --name db -p 8091-8094:8091-8094 -p 11210:11210 couchbase:community-7.1.1 - 만약 위 명령..