분류 전체보기 22

[CNN] 합성곱 층

CNN의 동기옛날 옛적 유명한 뇌과학자가 시각 피질을 연구했는데, 그 안에 많은 뉴런이 작은 "국부 수용장(local receptive field)" 를 가진다는 것을 발견했다. 국부 수용장이란 쉽게말해 한 뉴런이 받아들일 수 있는 원본 이미지의 작은 구역이다. 우리 눈이 특정 영역만 보고 그 정보를 모아서 전체 장면을 인식한다는 것인데, 이처럼 CNN도 작은 패턴을 먼저 보고 이를 조합해 더 큰 패턴을 이해하도록 만들어졌다. 합성곱 층합성곱 층은 CNN의 핵심 요소로, 이미지의 특징을 추출하는 역할을 한다. 첫 번째 합성곱 층의 뉴런은 입력으로 들어온 모든 이미지와 연결되는 것이 아니라 각 뉴런마다 국부 수용장에 속한 픽셀에만 연결된다. 두 번째 합성곱 층의 뉴런은 각 뉴런마다 연결될 수 있는 작은 사..

AI 2025.03.18

[DevOps] AWS EC2에 Docker 올리기 with Docker Compose

[AWS] AWS EC2 시작하기AWS EC2란?AWS EC2란 AWS에서 제공하는 가상 서버 서비스로, EC2는 Elastic Compute Cloud의 약자이다. 물리적인 서버를 직접 구매하거나 관리할 필요 없이 필요한 만큼의 "컴퓨팅 자원"(서버)을 임대하고 사brothergiven.tistory.com  [Docker] Docker 시작하기Docker란Docker는 애플리케이션을 "컨테이너" 라는 가벼운 가상화 환경에서 실행할 수 있도록 해주는 컨테이너 기반의 가상화 플랫폼이다. 애플리케이션을 개발하거나 실행할 때 다른 컴퓨터에서brothergiven.tistory.com이제 EC2, Docker 둘 다 기본적인 사용법을 익혔으니 Spring Boot 파일을 EC2 가상환경에 Docker로 올려보..

DevOps, 배포 2025.02.28

[OS] 환경변수

동기그동안 여러 프로젝트들을 진행해오면서, CS 관련 공부들을 해오면서 항상 궁금했고, 어려웠던 개념이 있다. 바로 "환경변수"!!! 정말 별 거 없어보이는데, 프로젝트 설정이나 외부 라이브러리 설정, 다른 사람이 작성한 프로젝트를 내가 가져와서 실행할 때 한 번씩 반드시 건드려야하는 설정이다..... 그냥 그 때 Readme에서 설명해주는대로 따라하기만 했었지만, 이제 내 프로젝트를 시작하는 입장에서 환경변수의 개념은 잡고 가야겠다.  환경변수란환경 변수(Environment Variable)는 "애플리케이션 또는 시스템에서 사용할 수 있는 동적인 값"을 말한다. 이 값들은 운영체제나 실행 환경에 저장되어, 프로그램이 실행될 때 필요한 설정 값이나 비밀 정보를 제공할 수 있다. 이렇게 들어서는 잘 이해..

CS/OS 2025.02.28

[HTTP] 80 vs. 8080

동기EC2 인스턴스를 설정할 때 HTTP 요청을 위한 80번 포트와 Spring Boot 애플리케이션을 위한 8080포트를 따로 여는 것을 보고 "Spring Boot 애플리케이션도 결국 HTTP 요청을 처리할 것인데, 둘 사이의 차이가 뭐지?" 하는 궁금증이 들었다. Port포트(Port)는 하나의 네트워크 엔드포인트(서버, 컴퓨터 등)가 동일한 IP주소를 가지더라도 여러 애플리케이션을 동시에 실행하고 각각의 데이터 통신을 원활하게 처리할 수 있도록 하는 가상의 출입구 역할을 한다. IP 주소가 서버의 위치를 나타낸다면, 포트는 서버 내의 특정 애플리케이션을 식별하는 역할을 한다. 동일 서버 내에서도 포트를 달리 설정하여 여러 애플리케이션을 동시에 실행할 수 있고, 클라이언트에서 들어오는 다른 요청들이..

2025.02.28

[Docker] Docker 시작하기

Docker란Docker는 애플리케이션을 "컨테이너" 라는 가벼운 가상화 환경에서 실행할 수 있도록 해주는 컨테이너 기반의 가상화 플랫폼이다. 애플리케이션을 개발하거나 실행할 때 다른 컴퓨터에서 실행하면 환경이 달라지는 게 너무 많으므로(OS, SDK 등) 매 환경마다 이 설정을 하는 데 엄청나 노력이 들기 때문에 도커를 통해 애플리케이션과 해당 애플리케이션이 필요로 하는 모든 라이브러리, 설정, 종속성 등을 하나의 "Image"로 묶어 도커만 있으면 어떤 환경에서도 애플리케이션을 동일하게 실행할 수 있다. VM은 내 컴퓨터 위에 OS 하나 자체를 올리는 가상화 기술이라면, Docker는 Host의 커널을 공유하며, 그 위에 "컨테이너" 에 올려 여러 애플리케이션을 실행할 수 있다. "이미지"는 애플리케..

DevOps, 배포 2025.02.26

[AWS] AWS EC2 시작하기

AWS EC2란?AWS EC2란 AWS에서 제공하는 가상 서버 서비스로, EC2는 Elastic Compute Cloud의 약자이다. 물리적인 서버를 직접 구매하거나 관리할 필요 없이 필요한 만큼의 "컴퓨팅 자원"(서버)을 임대하고 사용할 수 있다. 메모리, 네트워크, 스토리지까지 포함한 가상 서버를 사용자에게 제공하는데, 이 때 EC2는 주로 EBS(Elastic Block Store)를 스토리지로 사용하며, S3와의 차이점은 S3은 네트워크 기반으로 작동하는 저장소이며, EBS는 EC2에 바로 연결되는 디스크이다. 그 외에 EC2는 그냥 작은 컴퓨터 한대 빌리는 것이라고 생각하면 될듯. S3는 인터넷을 통해서 대용량 스토리지 하나 빌리는 것이고, ECS는 도커 기반의 컨테이너들을 클러스터 단위로 관리..

DevOps, 배포 2025.02.25

[MVC] Setvlet/JSP와 MVC 패턴

[Servlet] Web Server, WAS, ServletWAS vs. Web ServerWeb Server와 WAS(Web Application Server)는 같은 의미의 용어인가 싶지만 깊이 파보면 그 미묘한 차이가 있다. 단순히 직역하였을 때 WAS는 웹에서 "Application" 기능을 제공하는 서버이고, Web Sbrothergiven.tistory.com Servlet과 JSPSpring MVC는 MVC 패턴의 사고방식에 따라 효율적으로 웹 애플리케이션을 만들 수 있는 스프링의 기능이다. Spring 등장 전 자바 진영의 WAS는 JSP와 Servlet의 조합으로 주로 작성되었는데, 이 방법을 한 번 뜯어보자.@WebServlet(name = "memberSaveServlet", url..

2025.02.14

[Servlet] Web Server, WAS, Servlet

WAS vs. Web ServerWeb Server와 WAS(Web Application Server)는 같은 의미의 용어인가 싶지만 깊이 파보면 그 미묘한 차이가 있다. 단순히 직역하였을 때 WAS는 웹에서 "Application" 기능을 제공하는 서버이고, Web Server는 그냥 웹에서 어떤 것을 주는 서 이다... 라고 생각해볼 수 있지 않을까? 직관적으로 보이는 둘의 차이는 "Application"이다. 위키백과에 의하면, 웹 서버(web server)는 HTTP 또는 HTTPS를 통해 웹 브라우저에서 요청하는 [HTML 문서나 오브젝트(이미지 파일 등)을 전송해주는 서비스 프로그램을 말한다.  웹 애플리케이션 서버(Web Application Server, 약자 WAS)는 웹 애플리케이션과 ..

2025.02.10

[Spring] 빈 생명주기 콜백

지금까지 배운 스프링 빈의 생명주기는 다음과 같다 : 객체 생성 -> 의존관계 주입. 객체 생성과 의존관계 주입이 다 끝난 후에야 해당 객체의 데이터를 사용할 수 있게 되는데, 이 때 "객체 생성"과 "값의 초기화"를 분리하자는게 생명주기 콜백의 기본 아이디어이다. 개발자가 객체 생성과 의존관계 주입이 다 끝난 시점이 언제인지 알게 하고, 빈의 소멸 직전 타이밍이 언제인지 알게 하여 이 때 필요한 적절한 로직을 넣도록 하는것이 생명주기 콜백의 주요 목표이다.  "객체 생성"과 "값의 초기화" 의 분리가 필요한, 즉 객체 생성과 의존관계 주입이 끝난 시점이 언제인지 알아야 하는 대표적인 예시는 DB 커넥션 연결, 네트워크 커넥션 연결 등 자원의 할당/해제가 필요한 객체를 사용할 때이다. 또한 책임 분리의 ..

웹/Spring 2025.02.10

[Spring] @Autowired

[Spring] Spring Bean[Spring] DI란?강한 결합 vs. 느슨한 결합A 클래스의 함수에서 B 클래스의 함수를 호출할 때를 생각해보자.A 클래스 내에서  b.f() 처럼 호출하려면 B 클래스를 레퍼런스 하기 위한 필드를 가져야 한다brothergiven.tistory.com앞선 포스팅에서 Spring에서 지원하는 3가지 의존성 주입의 방법은 의존성을 주입할 때(생성자, 세터, 필드) @Autowired 애노테이션을 붙임으로써 사용할 수 있다고 하였는데, 이에 대해 더 자세하게 알아보자. ApplcationContext 객체 생성, @ComponentScan(Stereotype Annotation 또는 @Configuration 클래스)를 통해 IoC 컨테이너에 빈을 등록했다. 해당 빈에..

웹/Spring 2025.02.10