[C] C 언어의 개요
·
🛠️Backend/⚙️C
✅ 1. C 언어의 등장과 발전(1) 컴퓨터 프로그래밍과 프로그래밍 언어[ 프로그래밍이란? ]컴퓨터가 작업을 수행하기 위해 실행해야 하는 일련의 명령을 작성하는 것[ 프로그래밍 언어 ]프로그램을 작성하기 위해 사용되는 언어(2) C 언어의 탄생1972년 Bell 연구소의 Denis Ritchie가 시스템 프로그래밍을 위한 목적으로 개발한 프로그래밍 언어이다.컴퓨터 기종간 호환성이 높은 고급 프로그래밍 언어하드웨어 수준의 제어와 빠른 실행이 가능한 프로그램을 만들 수 있는 언어PDP-7 컴퓨터에서 어셈블리어로 구현한 Unix 커널을 C언어로 재작성 즉, C로 바꿔서 쉽게 보이게함.다양한 컴퓨터에 Unix 운영체제를 이식할 수 있게 됨 ( 현대의 운영체제들은 대부분 Unix 기반으로 만들어져 있음. )(3)..
[Java] JDBC 동작 원리와 커넥션 풀 이해하기
·
🛠️Backend/☕Java
✅ 1. JDBC(Java Database Connectivity) 란?자바에서 데이터베이스에 접속하고 SQL을 실행해서 결과를 가져오는 기능을 제공하는 Java API 이다.쉽게말해, 자바 애플리케이션과 데이터베이스 사이의 연결 통로 역할을 해준다고 보면 된다.JDBC 는 Java API 로써, JRE에 포함이 되어있으며, 해당 인터페이스 집합들을 데이터베이스(MySQL, Oracle, PostgreSQL 등) 이 해당 자바 인터페이스를 구현해 본인의 데이터베이스에 접근 할 수 있도록 클래스를 만들어 주게 된다. 해당 클래스를 라이브러리로 받아서 이용을 하게 되면, 해당 클래스와 맞는 데이터베이스와 연결을 할 수 있게 된다.참고로 해당 API 는 java.sql 또는 javax.sql 등의 패키지로 제..
[Spring Framework] 스프링 비동기 처리 방법
·
🛠️Backend/🌳Spring
✅ 1. 비동기(Asynchronous) 란?1. 클라이언트 요청2. 워커 스레드 클라이언트 요청 처리3. 동작 중 비동기 로직 발견4. 워커 스레드를 하나 더 만들어서 비동기 로직을 처리5. 요청 처리 및 비동기 처리 스레드 두개가 돌아가게 됨.6. 스케줄러의 의해 따로 동시의 동작을하게 됨.어떤 작업을 요청한 후 그 작업의 완료 여부를 기다리지 않고 다음 작업을 바로 수행하는 방식을 의미한다.보통 구현은 요청 하나 스레드에서 분기되어 동시에 다른 작업도 처리하는 과정이라고 볼 수 있음.✅ 2. Spring 에서 비동기(Asynchronous) 처리✅ @EnableAsync가 하는 일 요약 ( 애너테이션 사용시 내부 동작 )AsyncAnnotationBeanPostProcessor 등록→ @Async ..
[Spring WebSocket] 스프링에서 웹 소켓 동작
·
🛠️Backend/🌳Spring
✅ 1. 스프링과 서블릿 관계Spring Web MVC 는 서블릿 API 를 기반으로 만들어져 있으며, 내부적으로 DispathcerServlet 으로 서블릿을 구현해서 이용한다. 따라서 이를 실행하기 위해서는 서블릿 컨테이너가 필요하며, 그 서블릿 컨테이너 역할을 Tomcat, Jetty, Undertow 와 같은 미들웨어가 해준다. 이 미들웨어는 모두 자바 코드로 구현이 되어있으며, DispatcherServlet 을 구동시킬 수 있다.자바에서 실행은 모두 자바 애플리케이션을 실행시키는 것이다. 즉, Tomcat 과 같이 미들웨어들이 자바로 만들어져 있는 스프링 웹 애플리케이션을 서버로 만들어주는 구조이다.✅ 2. Tomcat 내부 동작스프링이 실행되는 시점에 내장 되어있는 미들웨어인 Tomcat 이..
[JavaScript] 자바스크립트 개념 정리: 왜 웹에 꼭 필요한 언어인가?
·
🛠️Backend/JavaScript
✅ 1. 자바스크립트(JavaScript) 란?웹 페이지를 동적으로 만들기 위해 설계된 프로그래밍 언어이다.처음 만들어졌을 당시 브라우저에서만 동작하는 클라이언트 측 언어로 시작을 했지만, 현재는 Node.js와 같은 환경 덕분에 서버 측에서도 사용 가능한 범용 언어가 되었다.또한, 자바스크립트는 웹 브라우저 안에서 동작하는 스크립트 언어라고 볼 수 있다. ✅ 2. 스크립트 언어란? 주로 애플리케이션 런타임 환경에 명령을 전달하거나 자동화하기 위해 설계된 간단한 문법의 프로그래밍 언어를 의미한다.애플리케이션 또는 플랫폼 위에서 직접 실행되거나 해석되어 동작하는 언어를 의미한다.쉽게말해, 자바, C, C++ 언어는 애플리케이션을 만들기 위한 언어이다. 즉, 운영체제 위에서 독립적으로 실행되는 완전한 프로그..
[Java] 프록시 패턴, 정적 프록시, 동적 프록시: Spring 사례 중심 설명
·
🛠️Backend/☕Java
✅ 1. 프록시(Proxy) 란?다른 객체에 대한 접근을 제어하는 객체로 디자인 패턴의 프록시 패턴과 일치하는 개념이다.프록시의 주요 목적은 접근 제어, 로깅/감시, 지연 로딩, 보안 처리, 트랜잭션 처리 등이 있다.✅ 2. 프록시패턴(Proxy Pattern) 이란?interface Subject { void request();}class RealSubject implements Subject { public void request() { System.out.println("실제 작업 수행"); }}class Proxy implements Subject { private RealSubject realSubject; public void request() { ..
[Spring Framework] Servlet API, HttpServlet, DispatcherServlet, Tomcat 알아보기
·
🛠️Backend/🌳Spring
✅ 1. Servlet API 란?package jakarta.servlet;import java.io.IOException;public interface Servlet { void init(ServletConfig var1) throws ServletException; // Servlet 생성 ServletConfig getServletConfig(); // 요청을 받아 처리하는 핵심 메서드 void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException; String getServletInfo(); void destroy(); // Servlet 삭제}서블릿은 자바 기..
[Spring Framework] HttpServletRequest - HTTP 메시지 값 담기는 과정 (요청)
·
🛠️Backend/🌳Spring
SpringBoot 내장 서버는 Tomcat이며, 해당 Tomcat은 WAS로 불리며, 요청과 응답을 주고 받는 미들웨어로 불린다.Tomcat은 HttpServletRequest 인터페이스를 구현한 클래스를 제공해준다.즉, 요청이 들어오면 HttpServletRequest 인터페이스를 구현한 클래스에 요청의 대한 값이 담기게 된다.✅ 1. HttpServletRequest [ interface ]package jakarta.servlet.http;public interface HttpServletRequest extends ServletRequest { // ... 여러 HTTP 관련 메서드들이 추상메서드로 정의되어 있음.}자바의 표준 API 인 Servlet API 의 일부이다. 즉, 자바 표준 ..
[Backend] 애자일(Agile) 이해하기
·
🛠️Backend/📚백엔드 공부
✅ 1. 애자일이란? 애자일(Agile)은 소프트웨어 개발 방법론 중 하나이다.애자일(Agile)을 한국어로 번역을하면 "기민한", "신속한" 이라는 뜻을 가진다.즉, 변화에 유연하게 대응하며 점진적으로 제품을 개발해 나가는 소프트웨어 개발 방법론을 의미한다.✅ 2. 소프트웨어 개발 방법론이란?소프트웨어를 체계적이고 효율적으로 개발하기 위해 정해놓은 방식 또는 절차를 의미한다.쉽게말해, 소프트웨어를 만들 때 무작정 만들지 않고, 어떤 순서로, 어떻게, 누가, 무엇을 해야 하는지 정해둔 설계도 같은 것이처럼 단계를 정해서 단계에 맞게 소프트웨어를 개발하는데, 해당 단계를 규명하는 것을 의미한다.✅ 3. 애자일 만들어진 이유2001년 미국 유타주의 한 리조트에서 17명의 개발자가 모여 만든 것이 "애자일 ..
유비쿼터스 컴퓨팅개론 10강 - 상황 인식 기술
·
🎓방송통신대학교/🌍유비쿼터스 컴퓨팅
✅ 1. 상황인식 컴퓨팅사용자의 현재 상황이나 환경을 인식하고 그에 맞는 서비스를 자동으로 제공하는 컴퓨팅 기술을 의미한다.예를들면, 스마트폰이 실내에 있으면 자동으로 Wi-Fi에 연결이 되거나 실외에서는 모바일 데이터 자동 사용이 있다.센서나 이런 물리적인 장치로 주변 환경의 정보를 알아내고 해당 정보를 토대로 서비스를 제공해주는 컴퓨팅 기술임.(1) 상황의 정의[ 컴퓨팅 상황 ]네트워크 연결성 / 통신 비용 / 통신 대역폭 / 프린터 / 디스플레이 등 주변에 존재하는 자원[ 사용자 상황 ]사용자 프로필 / 위치 / 현재의 사회적 상황을 포함한 사용자 정보[ 물리적 상황 ]조명 / 소음 수준 / 교통 상황 / 온도 등[ 시간적 상황 ]시간 / 요일 / 계절 / 월, 일 등 (2) 상황의 분류[ 외부적 ..