분류 전체보기 233

실무에 꼭 필요한 HTTP - 2 (URI와 웹 브라우저 요청 흐름, HTTP란)

1편 인터넷 네트워크 편에 이어 2편도 이어서 작성해 보도록 하겠습니다. 목차 인터넷 네트워크 URI와 웹 브라우저 요청 흐름 HTTP 기본(특징, 메서드, 상태코드) HTTP 헤더 HTTP 캐시 URI(Uniform Resource Identifier) 리소스를 식별하는 통합된 방법입니다. 프로그래밍을 학습하다 보면 URL, URI가 등장합니다. 저는 처음에 URI가 오타인 줄 알고 선생님께 여쭤본 기억이 있는데요. 둘은 어떤 차이점이 있을까요? URI는 URL과 다른 개념이 아닌 URL을 포함하는 개념이라는 것을 알 수 있습니다. URL은 리소스의 위치를 나타내고, URN은 리소스의 이름을 나타냅니다. 리소스의 이름만으로는 실제 리소스를 찾을 수 없으므로 URL을 사용하기에 URI는 URL과 같은 의..

CS/HTTP 2023.06.02

실무에 꼭 필요한 HTTP - 1 (인터넷 네트워크)

개발자는 평생 HTTP기반 위에서 개발해야 한다. 백엔드 개발자의 경우 웹 기술이 모두 HTTP기반으로 구현되어 있기에, HTTP를 제대로 이해하지 못하고 웹 개발부터 시작하면 깊이 있게 이해할 수 없습니다. 저도 알고 있었지만 취업을 위해 백엔드와 프론트엔드 기술을 익히고 기능개발에만 몰두했다면, 한 템포 쉬어가며 실무에서 꼭 필요한 HTTP 지식을 쌓는 시간을 가져보고자 합니다. 사실.. 예전에 오며가며 공부했던 내용이지만 역시 메모를 안 하면 다 휘발되나 봅니다. 이번에는 저를 위해 핵심 내용만 메모를 하면서 뇌에 새기는 작업을 해야겠습니다. 항상 이렇게 간단하게 적는다면서 구구절절 적게 되더라구요.... 총 5편에 걸쳐서 진행할 예정입니다. 간단하게 목차를 살펴보자면, 목차 인터넷 네트워크 URI..

CS/HTTP 2023.06.02

[채용설명회] 존슨앤존슨 인턴 지원

존슨 앤 존슨 소개 존슨 앤 존슨 딱 떠오르는 제품: 얀센백신 전 세계적인 영향력, 시대를 초월한 헬스, 의료기기 서비스, 기술혁신, 지속적 노력 130년 이상 지속할 수 있었던 나침반 : Credo(무엇을 위해 존재하는가, 기업 철학)이 있기에 가능 크게 3가지 사업 소비재 20, 약 50, 의료기기 30 - 의료기기와 제약을 하는 유일한 회사 "혁신"을 위해 "엄청난 노력" 인류의 건강을 위해 힘씀 가장 존경받는 회사로 10년 연속 선정 건강하고 혁신적인걸 직원에게도 적용 팬데믹 때 진면목 전 세계적으로 의료 혜택을 보게 해 줌- 예) 아프리카 지구에 친환경 기업 가치 - 다양성, 공정, 포용 다양성이 곧 해결책으로 이어질 것이라 믿음 인류 건강에 이바지하는 회사 MedTech소개 생명을 구하는 의료..

카테고리 없음 2023.05.25

[기술면접] 알고리즘 - 2/2

1편에 이어서 작성해 보겠습니다. 😎 동적 프로그래밍(Dynamic Programming)이란? 주어진 문제를 풀기 위해서, 문제를 여러 개의 하위 문제(subproblem)로 나누어 푼 다음, 그것을 결합하여 해결하는 방식입니다. 동적 프로그래밍에서는 어떤 부분 문제가 다른 문제들을 해결하는 데 사용될 수 있어, 답을 여러 번 계산하는 대신 한 번만 계산하고 그 결과를 재활용하는 메모이제이션(Memoization) 기법으로 속도를 향상 시킬 수 있습니다. ▶ 동적 프로그래밍(Dynamic Programming)의 두 가지 조건에 대해 말씀해 주세요. 동적 프로그래밍(Dynamic Programming)으로 문제를 해결하기 위해서는 주어진 문제가 다음의 조건을 만족해야 합니다. Overlapping Su..

[기술면접] 알고리즘 - 1/2 (6개 정렬 알고리즘)

😎 시간복잡도를 빅오표기법으로 나타내시오. 😎 거품 정렬, 버블정렬 (Bubble Sort) 서로 인접한 두 원소의 대소를 비교하고, 조건에 맞지 않다면 자리를 교환하며 정렬하는 알고리즘입니다. 가장 쉬운 정렬 알고리즘이지만 시간복잡도가 좋은 퍼포먼스를 내지 못해서 실제로는 잘 사용되지 않습니다. 시간복잡도는 O(n²)이며 공간복잡도는 하나의 배열만 사용하여 정렬을 진행하기 때문에 O(n)입니다. 정렬이 돼있던 안돼있던, 2개의 원소를 비교하기 때문에 최선, 평균, 최악의 경우 모두 시간복잡도가 O(n²)으로 동일하다. 과정(오름차순) 1회전에 첫 번째 원소와 두 번째 원소를, 두 번째 원소와 세 번째 원소를, 세 번째 원소와 네 번째 원소를, … 이런 식으로 (마지막-1) 번째 원소와 마지막 원소를 비..

[기술면접] 자료구조 - 2/2

1편에 이어서 작성해 보겠습니다. 😎 해시 테이블(Hash Table)과 시간 복잡도에 대해 설명해주세요. 해시 테이블은 (Key, Value)로 데이터를 저장하는 자료구조 중 하나로 빠르게 데이터를 검색할 수 있는 자료구조입니다. 빠른 검색 속도를 제공하는 이유는 내부적으로 배열(버킷)을 사용하여 데이터를 저장하기 때문입니다. 각 Key값은 해시함수에 의해 고유한 index를 가지게 되어 바로 접근할 수 있으므로 평균 O(1)의 시간 복잡도로 데이터를 조회합니다. 하지만 index값이 충돌이 발생한 경우 Chanining에 연결된 리스트들까지 검색해야 하므로 O(N)까지 증가할 수 있습니다. ▶ 결국 데이터가 많아지면, 다른 데이터가 같은 해시 값으로 충돌 나는 현상이 발생하는데도 해시 테이블을 사용하..

[기술면접] 자료구조 - 1/2

😎 Array(List)의 가장 큰 특징과 그로 인해 발생하는 장점과 단점에 대해 설명해 주세요. Array의 가장 큰 특징은 순차적으로 데이터를 저장한다는 점입니다. 데이터에 순서가 있기 때문에 0부터 시작하는 index가 존재하며, index를 사용해 특정 요소를 찾고 조작이 가능하다는 것이 Array의 장점입니다. 순차적으로 존재하는 데이터의 중간에 요소가 삽입되거나 삭제되는 경우 그 뒤의 모든 요소들을 한 칸씩 뒤로 밀거나 당겨줘야 하는 단점도 있습니다. 이러한 이유로 Array는 정보가 자주 삭제되거나 추가되는 데이터를 담기에는 적절치 않습니다. ▶ Array를 적용시키면 좋을 데이터의 예를 들어주세요. Array를 적용하면 좋은 이유, 그리고 Array를 사용하지 않으면 어떻게 되는지 함께 설..

REST API에서 URL을 작성하는 규칙

혼자 프로젝트를 할 땐 REST API URL을 단순히 이해하기 쉽게 작성하면 되겠지만, 다른 개발자들과 협업할 때는 공통된 규칙이 있어야합니다. 개발자 뿐만아니라 비개발자분들도 한 눈에 의미 파악이 가능하도록 작성하는 것이 중요합니다. 자원 표현 (복수형) REST API에서 URL은 자원을 표현해야 합니다. 예를 들어, 사용자 정보를 조회하는 API라면 /users와 같은 URL을 사용합니다. 동사보다 명사 동사보다는 명사를 사용합니다. CRUD(Create, Read, Update, Delete) 동작은 HTTP Method로 구분되기 때문에 URL에 동사를 사용하지 않습니다. 계층관계를 나타낼 때는 슬래시 구분자 사용 REST API에서 URL은 계층 구조를 갖도록 설계합니다. 예를 들어, 사용자..

개발 공부 2023.04.17

[템플릿] DTO to Entity, Entity to DTO

Entity를 DTO로 변환시키거나, DTO를 Entity로 변환시킬 때 사용하는 기본 코드입니다. Entity to DTO @Entity public class Something { ... private String name; private String email; ... public SomethingResponseDto toResponseDto(){ return SomethingResponseDto.builder() .name(name) .email(email) .build(); } } 사용하는 방법 SomethingResponseDto responseDto = something.toResponseDto(); Entity to DTO List 사용하는 방법 List responseDtoList = s..

Spring 2023.04.17

Spring Security Session기반 인증 방식 VS Spring Security + JWT토큰 인증 방식

Spring Security Session 기반 인증 방식 디렉토리 구조 📁config 📁 auth © CustomUserDetails © CustomUserDetailsService © SecurityConfig 📁 controller © IndexController 📁 model © User 📁 repository ⓘUserRepository 1. SecurityConfig @Configuration public class SecurityConfig { @Bean public BCryptPasswordEncoder encodePwd() { return new BCryptPasswordEncoder(); } @Bean public SecurityFilterChain filterChain(HttpSecu..

Spring 2023.04.12