목록전체 글 (90)
Post-IT

1. 문제 분석 이 문제는 N의 길이가 100,000이고 제한시간은 0.5초 이므로 시간복잡도 O(N)의 시간 복잡도를 가지는 알고리즘을 사용해야 한다. 모든 경우의 수열의 합을 구하면서 찾아가야한다. 투 포인터 알고리즘을 사용하여 구현해보려고한다. start_idx, end_idx를 두고 구간의 합에 따라 인덱스 위치를 변경하는 알고리즘을 짠다면 가능해 보인다. 시간복잡도 : O(N)알고리즘 : 투 포인터 start_idx ~ end_idx까지 합(Sum)이 S보다 작으면 end_idx를 밀고 합이 S보다 크다면 start_idx를 밀어가며 Sum이 S보다 큰 조건을 만족할때의 최솟 값을 구한다. 2. 문제 풀이이번 문제 풀이는 슈도코드로 작성해봤다.N 배열, S 저장start_idx = 0, end_..
스프링 프레임워크는 자바 기반의 애플리케이션 프레임워크로 애플리케이션 개발을 위한 다양한 기능을 제공합니다. 스프링은 목적에 따라 다양한 프로젝트를 제공하는 데, 그 중 대표적인 것이 스프링 부트(Spring Boot)입니다. 스프링의 핵심 가치는 다음과 같습니다.애플리케이션 개발에 필요한 기반을 제공함으로써 개발자는 비즈니스 로직 구현에만 집중하도록 도우는 것 프레임워크를 사용할 때, 프레임워크의 목적성에 맞게 사용할 때 효율이 극대화 됩니다. 그렇다면 스프링은 어떠한 구조와 특성으로 인해 위와 같은 핵심가치를 이루도록 도와줄까요? 1. 제어의 역전 ( Inversion of Control )일반적인 자바 프로그래밍을 할 때 우리는 다음과 같이 객체를 사용합니다.public class main(){ ..
백엔드 개발자를 준비하면서 TDD(Test Driven Developmet) 방식의 개발을 하면서 JUnitTest를 접하게 되었는데, 공부하면서 알게된 내용을 정리하고자 합니다. 1. 단위 테스트 [ 단위 테스트(Unit Test)란? ] 단위 테스트란 특정 소스코드의 모듈이 의도한대로 작동하는지 검증하는 테스트입니다. 테스트의 단위를 정해놓지는 않지만, 일반적으로 클래스 혹은 메서드 수준으로 테스트를 진행합니다. [ 단위 테스트의 장점 ] 단위 테스트의 핵심적인 장점들은 다음과 같다. 코드를 수정하거나 기능 추가 시에 수시로 검증 가능하다. 어떤 코드를 리펙토링해도 안정성을 확보할 수 있다. 개발 및 테스팅에 대한 시간과 비용이 절감된다. 2. JUnitTest JUnitTest는 우리가 단위 테스트..

2023년 2월 대학을 졸업하고, 올 한해 목표 없이 많이 방황했던 것 같다. 해보고 싶은 것은 많다고 생각했었는데, 정작 자유로운 시간이 주어지는데 흥미가 없는지 계속해서 미루다 보니 어느새 한 해가 다갔다. 막상 취업준비를 해보니 내가 많이 부족하다고 깨달았는데, 정작 내가 뭐가 부족한지는 찾아보려고 하지 않았던 것 같다. 이런 기간이 길어지니 목표가 무뎌지고, 내가 꿈꿧던 것들이 희미해진다. 아니 그냥 그런 꿈은 없었나 생각이 들기도 한다. 교육이라도 들어볼까 하고 넣어본 싸피랑 우테코 모두 떨어지고, 내가 뭘 하고 싶은지 생각을 가진 것 같다. 내가 왜 개발자가 되려고 했는지 처음으로 돌아가 봤다. 대학은 수능 성적 맞춰서 오다보니 컴공에 들어왔고, 어쩌다 보니 컴퓨터를 공부하고 있었다. 딱히 큰..

웹 브라우저란? 웹 브라우저는 동기적으로 HTML, CSS, JS해석하여 화면에 내용을 보여주는 응용 소프트웨어입니다. 웹 브라우저가 웹 서버에 필요한 자원을 요청하면 서버는 이에 응답하고 웹브라우저에서 받은 자원을 해석하여 클라이언트에게 보여줍니다. 즉, 브라우저는 클라이언트(Clinet)와 서버(Server) 사이에서 자원을 요청하고, 해당 자원을 화면상에 표현해 주는 역할을 한다. 1. 브라우저는 서버로 부터 HTTP Request를 통해서 데이터를 받으면 HTML 문서를 파싱하여 DOM(Document Object Model) 트리를 생성한다. DOM 트리를 생성하는 과정에서 script나 리소스나 link가 걸려있는 태그에 대해서는 파싱을 중단하고, 해당 작업을 완료 후에 파싱을 이어나간다. 2..

HTTP는 Hyper Text Transfer Protocol의 약자로 HTML 뿐만 아니라 JSON, XML 등 다양한 형태의 정보도 전송하는 애플리케이션 레이어 프로토콜이다. HTTP 특징 1. TCP/IP를 이용하는 응용 프로토콜이다. 2. HTTP는 연결을 유지하지 않는 비연결성 프로토콜이다. 3. HTTP는 Request / Response 방식으로 동작한다. Request의 종류 1. Get : 자료를 요청할 때 사용 2. POST : 자료의 생성을 요청할 때 사용 3. PUT : 자료의 수정을 요청할 때 사용 4. DELETE : 자료의 삭제를 요청할 때 사용 상태코드 1. 1XX : 요청을 받았고, 작업을 계속한다. 2. 2XX: 요청에 승낙 및 성공 3. 3XX : 클라이언트는 요청을 마..

인터넷의 사전적 정의는 다음과 같다. 인터넷이란 컴퓨터들이 서로 통신 가능한 거대한 네트워크를 말한다. 인터넷의 정의 안에 또 다른 용어가 나온다. 그렇다면 네트워크는 또 무엇인가? 컴퓨터 두대가 유선 혹은 무선으로 연결이 되어 있을때, 우리는 그 두 컴퓨터를 네트워크 상에 있다고 얘기한다. 즉 네트워크는 Net과 Work의 합성어로 컴퓨터들이 통신기술을 통해 그물망처럼 서로 연결된 형태를 말한다. 각각의 컴퓨터를 연결하면 다음과 같이 구성이 되는데 우리가 알고 있는 네트워크랑은 조금 다르다고 생각 될수도 있겠다. 서로가 서로에게 연결되어 있긴하지만, 우리가 아는 네트워크는 핸드폰, 컴퓨터, 노트북을 공유기에 연결되어 있는 형태를 더 많이 알고 있을것이다. 위와 같이 서로 연결하다보면, 비용 부담도 발생..