
jstl이 무엇인지, 그 주기능은?
JSTL은 JavaServer Pages Standard Tag Library의 약자로, JSP 개발을 위한 태그 라이브러리입니다. JSTL은 JSP 스크립트릿을 대체하여 코드의 가독성을 높이고 개발을 단순화시킬 수 있습니다. JSTL은 다음과 같은 기능을 제공합니다
XML 데이터 처리
조건문 및 반복문
국제화 및 지역화
데이터베이스 작업
JSTL을 사용하려면 JSP 파일 상단에 JSTL 라이브러리를 선언해야 합니다.
JSTL 주요 기능
<c:if>: 조건문 처리
<c:forEach>: 반복문 처리
<c:choose>, <c:when>, <c:otherwise>: 다중 조건문 처리
2. 함수 태그 (Functions Tags)
JSTL 함수 태그는 문자열 처리, 숫자 처리 등의 기능을 제공합니다.
포맷팅 태그 (Formatting Tags)
JSTL 포맷팅 태그는 날짜, 시간, 숫자 등의 데이터를 형식화하는 기능을 제공합니다.
XML 태그 (XML Tags)
JSTL XML 태그는 XML 데이터를 처리하는 기능을 제공합니다.
SQL 태그 (SQL Tags)
JSTL SQL 태그는 데이터베이스 작업을 수행하는 기능을 제공합니다.
postgreSQL?
PostgreSQL은 오픈 소스 객체-관계형 데이터베이스 시스템으로, 20년 이상의 역사를 가지고 있습니다. 다양한 데이터베이스 객체를 만들 수 있는 기능을 제공하며, 클라이언트/서버 모델을 사용합니다.
ANSI:2008 표준을 만족시키며, 지속적으로 기능이 추가되고 있습니다. 안정성, 유연성, 다양한 데이터 타입 지원으로 알려져 있습니다. 오늘날 디지털 환경에서 동적 데이터베이스 시스템을 유지하는 데 중요한 역할을 합니다.
PostgreSQL vs 오라클
오라클은 상용 DBMS로 성능과 기능이 뛰어나지만, 비용이 높습니다.
PostgreSQL은 오픈 소스로 무료이며, 오라클에 비해 기능이 다소 부족하지만 점점 발전하고 있습니다.
오라클은 decode 함수, sysdate 등을 사용하지만, PostgreSQL은 case when 문을 사용합니다.
오라클은 outer join 구문이 다르며, PostgreSQL은 text_pattern_ops 옵션을 사용해야 할 수 있습니다.
PostgreSQL vs MySQL
MySQL은 읽기 전용 작업에 더 적합하고, PostgreSQL은 읽기-쓰기 작업과 대규모 데이터 세트 관리에 더 적합합니다.
MySQL은 PostgreSQL보다 기능이 적지만, 읽기 전용 쿼리에서 더 가볍고 안정적이며 빠른 처리 속도를 유지할 수 있습니다.
PostgreSQL은 다양한 join 방식을 제공하며, 적절한 인덱스를 사용할 수 없는 경우에 더 적합합니다.
MySQL은 멀티 스레드 방식, PostgreSQL은 멀티 프로세스 방식으로 동작합니다.
종합적으로 PostgreSQL은 오라클과 MySQL에 비해 기능이 다소 부족하지만, 오픈 소스로 무료이며 지속적으로 발전하고 있습니다.
특히 읽기-쓰기 작업과 대규모 데이터 세트 관리에 강점이 있습니다.
JWT란 무엇인지?
Spring Security: 스프링의 보안 프레임워크로, 인증과 권한 부여 등의 보안 기능을 제공합니다.

Spring Boot Batch 란? 그리고 배치프로그램과 스케줄러란?
💡 배치 프로그램(Batch Program)이란?
💡 스케줄러(Scheduler)란?
💡 배치 프로그램과 스케줄러는 동일한 것이 아닌가?

Call by value 와 Call by Reference 에 대해서 설명하고 java에서는 어떻게 사용되는지?
💡 Call By Value와 Call By Reference의 차이에 대해 설명해주세요.
Call By Value(값에 의한 호출) - 인자로 받은 값을 복사하여 처리하는 방식입니다.
장점 - 값을 복사하여 처리하기 때문에 원래의 값이 보존된다.
단점 - 복사하기 때문에 메모리 사용량이 증가한다.
Call By Reference(참조에 의한 호출) - 인자로 받은 값의 주소를 참조하여 직접 저장해 값에 영향을 주는 방식입니다.
장점 - 복사하지 않고 직접 참조하기에 빠르다.
단점 - 직접 참조를 하기에 원래의 값이 영향을 받는다.
💡 그럼 Java에서 어느 부분이 call by value이고 어느 부분이 call by reference에 해당하나요?
닫기
Java는 기본적으로 모든 전달 방식이 Call by Value 입니다.
참조형의 경우 객체의 '주소값'을 매개변수로 전달하니 call by reference가 아니냐는 의문을 가질 수 있지만,
정확하게 말하면 '주소값'이 아니라, '주소를 가리키는 참조값'이다.
또한, 주소값 자체를 '복사 없이' 인자로 전달하는게 아니라 자기 자신이 갖고 있는 값을 복사해서 전달한다.
결국 기본형 변수나 참조형 변수 모두 자기 자신이 갖고 있는 값을 복사해서 전달하기 때문에 Call by value이다.
CORS 이슈란?
💡 CORS란 도메인이 다른 사이트가 데이터를 주고 받을 때 발생하는 문제입니다.
브라우저는 보안 상의 이유로, 교차 출처 HTTP 요청을 제한한다.
CORS 이슈를 해결하는 방법은 크게 3가지가 있습니다:
-서버 측 CORS 설정, 프록시 서버 사용, 브라우저 확장 프로그램 사용방법이 있습니다.
서버 측에서 CORS 설정을 하는 것이 가장 일반적인 방법입니다. 서버에서 응답 헤더에 CORS 관련 정보를 추가하면 됩니다.
Access-Control-Allow-Origin/Methods/Age/Headers를 통해
허용할 도메인, HTTP 메서드, 결과저장시간, 요청 헤더를 지정합니다.
브라우저에서 CORS 이슈 없이 리소스를 요청할 수 있습니다.
프록시 서버를 사용하면 CORS 이슈를 해결할 수 있습니다.
클라이언트가 프록시 서버에 요청을 보내면, 프록시 서버가 실제 서버에 요청을 전달하고 응답을 받아 클라이언트에게 전달합니다.
이 과정에서 CORS 이슈가 해결됩니다.
브라우저 확장 프로그램을 사용하면 CORS 이슈를 해결할 수 있습니다.
대표적인 확장 프로그램으로는 Chrome의 'Allow CORS'가 있습니다.
이 확장 프로그램을 설치하면 브라우저에서 CORS 이슈를 자동으로 해결해줍니다.
개발 및 테스트 환경에서 유용하게 사용할 수 있습니다.

스터디 현황
