분류 전체보기
-
[Spring] 리액트(React) - 스프링(Spring) 연동 시 발생하는 CORS 이슈 해결하기Backend Dev/Spring Framework 2023. 3. 5. 15:59
웹 개발 팀 프로젝트를 진행하다 퍼블리싱과 API 개발을 마친 뒤 프론트엔드 쪽에서 API 테스트 도중 다음과 같은 CORS 에러가 발생하였다. "Access to XmlHttpRequest at A from origin B has been blocked by CORS policy : Response to preflight requeset doesn't pass access control check: No "Access-Control-Allow-Origin" header is persent on the requested resource" 이는 자바스크립트에서 서로 다른 도메인 소스에 대해 ajax 요청 API 호출 시 웹 브라우저가 하나의 서버 연결만 허용하도록 설정되어 있기에 발생하는 에러이다. COR..
-
완전 탐색(Brute Force - with. 백준 일곱난쟁이)알고리즘/탐색 2023. 2. 19. 18:07
알고리즘 문제를 해결하기 위해 가장 쉬운 방법 중 하나로 완전 탐색을 떠올릴 수 있다. 이 알고리즘은 간단하게 모든 경우의 수를 탐색하는 방법으로 구현하기 쉬운만큼 시간은 최대로 사용하게 된다. 완전 탐색으로 풀 수 있는 문제 중 백준의 일곱 난쟁이 문제의 코드를 예시로 들어보겠다. https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 문제를 간략하게 설명하자면 아홉 난쟁이의 키가 주어졌을 때 일곱 난쟁이의 키의 합이 100이 되는 경우를 찾아 각 난쟁이의 ..
-
AWS CodeDeploy Agent 설치 오류 해결 방법Backend Dev/CI, CD 2023. 1. 12. 20:59
AWS EC2에 접속하여 프로젝트를 배포하기 위해 CodeDeploy Agent를 설치해야 하는데 이에 사용되는 명령어는 아래와 같다. $ wget https://aws-codedeploy-ap-northeast-2.s3.amazonaws.com/latest/install $ chmod +x ./install $ sudo ./install auto 권한 변경 후 install 파일을 다운 받던 중 다음과 같은 에러가 발생할 수 있다. /usr/bin/env: ruby: No such file or directory 해당 에러는 ruby라는 언어를 설치하지 않았을 때에 발생하는 문제이므로 EC2 인스턴스에 ruby를 설치하는 명령어를 수행하였다. # $ sudo apt-get install ruby $ s..
-
[Spring] JPA vs JDBCBackend Dev/Spring Framework 2022. 12. 20. 17:39
JPA(Java Persistence API)란? 자바 진영의 ORM(객체 관계 매핑) 기술에 대한 API 표준으로 SQL 중심적인 개발의 문제점을 해결해주기 위해 나온 기술이다. SQL 중심적으로 개발을 했을 경우의 문제점 무한 반복, 지루한 코드 직접 작성 (CRUD) SQL에 의존적인 개발 (필드 추가시 직접 SQL 수정, 객체와 SQL간 변환) 패러다임의 불일치 특히, 패러다임의 불일치는 객체와 관계형 데이터베이스의 차이에서 영향을 미쳐 객체 지향 프로그래밍에 맞지 않는 문제가 생기는데 상속, 연관관계, 데이터 타입, 데이터 식별 방법에서 차이가 생긴다. 상속 -> 객체 상속 관계와 테이블의 슈퍼타입, 서브타입 관계에서 주키, 외래키 관리 차이 연관관계 -> 객체는 참조를 사용하며 테이블은 외래 ..
-
웹 애플리케이션의 이해Computer Science/Computer Network 2022. 4. 12. 21:12
웹 서버 거의 모든 형태의 데이터 전송이 가능하고, 서버간 데이터를 주고 받을 때 사용하는 HTTP를 기반으로 동작하고 클라이언트에 정적 리소스(HTML, CSS, 이미지 등)를 제공한다. 웹 애플리케이션 서버 서버에서 처리해야 하는 작업은 서블릿을 지원하는 WAS를 사용한다. HTTP 기반으로 동작하고 웹 서버 기능을 포함하여 정적 리소스 제공이 가능하다. 또한, 동적으로 프로그램 코드를 실행해 애플리케이션 로직을 서버에서 수행할 수 있다. WAS는 서블릿 컨테이너 기능을 제공해주고 JSP나 스프링 MVC 패턴을 적용하여 애플리케이션 로직에 초점이 맞춰져있다. 그러나 WAS가 많은 역할을 담당하면서 서버 과부하의 우려가 있고, 비용이 비싼 애플리케이션 로직이 정적 리소스로 인해 수행이 어려울 수 있다...
-
HTTP의 메소드Computer Science/Computer Network 2022. 4. 6. 02:28
HTTP 메서드 GET(리소스 조회) : 서버에 전달하고 싶은 데이터는 query parameter를 통해서 전달한다. 정적인 데이터를 조회할 시에는 query parameter가 필요하지 않고, 동적 데이터를 조회할 때에는 query parameter가 필요하다. POST(요청 데이터 처리 및 등록) : 메시지 바디를 통해 서버로 요청 데이터를 전달하면 서버는 들어온 데이터를 처리하는 모든 기능을 수행한다. 주로 신규 리소스를 등록하거나 프로세스 처리에 사용된다. POST 예시 : HTML form에 입력된 정보로 회원가입 및 주문 / 게시판 글쓰기, 댓글 달기 / 신규 주문 생성 URI에 POST 요청이 오면 요청 데이터를 어떻게 처리할지 리소스마다 따로 정해야 한다. POST는 서버가 아직 식별하지..
-
HTTP의 기본Computer Science/Computer Network 2022. 3. 31. 02:23
HTTP(HyperText Transfer Protocol) HTML 웹 문서뿐만 아니라 영상 파일, XML, JSON 등 거의 모든 형태의 데이터를 전송할 수 있는 통신 규약이며, 서버 간 데이터를 주고 받을 때도 대부분 HTTP를 사용한다. HTTP/1.1 버전이 가장 많이 사용되고 중요한 버전이다. 여러 메서드나 헤더가 있고, TCP 기반 프로토콜이다. 신뢰성과 관계없이 빠른 통신을 하기위해 HTTP/3 버전에서는 UDP 기반의 통신 규약을 따르고 있다. HTTP 특징 - 클라이언트, 서버 구조 request, response 구조이며 클라이언트는 서버에 요청을 보내고 응답을 대기한다. 이후 서버가 요청에 대한 결과를 만들어서 응답한다. 클라이언트(UI, 인터페이스)와 서버(비즈니스 로직, 아키텍처..
-
6. 메모리 주소와 바인딩Computer Science/Operating System 2022. 3. 29. 00:58
메모리 주소 - 논리 주소와 물리 주소 논리 주소는 프로세스마다 독립적으로 가지는 가상 메모리의 주소로 각 프로세스마다 0번지부터 시작된다. 물리 주소는 메모리에 실제 프로세스가 적재되는 절대적 위치를 말한다. 참고로, CPU는 물리적 주소가 아닌 논리적 주소를 확인한다. CPU가 기계어를 실행하면서 코드의 주소들은 논리적 주소이므로 메모리에 접근을 할때마다 MMU를 통해 주소 변환을 하여 메모리 접근을 해야한다. MMU(Memory Management Unit) : 논리적 주소를 물리적 주소로 매핑 해주는 하드웨어 사용자 프로세스가 CPU에서 수행되며 생성해내는 모든 논리 주소값에 대해 relocation register(재할당 레지스터) 값을 더한다. 이때, 논리적 주소가 limit register ..