개인 개발 TIL(5)
-
(2022-11-21) 배열과 리스트
알고리즘 문제를 풀다가 배열과 리스트에 대해 헷갈려서 아직 개념을 확실히 알지 못한다고 판단되어 다시 공부할겸 적게 되었다. 배열(Array) - 데이터가 많아지고 그룹 관리의 필요에 따라 배열을 사용한다. - 고정된 크기를 갖는 같은 자료형의 원소들이 연속적인(논리적 저장 순서와 물리적 저장 순서가 일치) 형태로 구성된 자료구조 - 인덱스에 따라 값을 유지하므로 원소가 삭제되어도 빈자리가 남게되어 메모리가 낭비된다. - 처음 크기를 10으로 지정한다면 5개의 데이터만 저장하더라도 실제 배열의 크기는 10이다. - 인덱스(index) : 각 원소의 번호로 0번부터 시작하며, 해당 원소에 접근한다. - 데이터 갯수가 확실하게 정해져 있고, 접근이 빈번한 경우 배열이 효율적이다. - c-ache hit 가능..
2022.11.21 -
(2022-11-06)Spring Web MVC의 Dispatcher Servlet의 동작 원리
동작 원리 1. 클라이언트의 요청을 Dispatcher Servlet에 전달 2. 요청한 url에 맞는 controller 검색하여 Handler Mapping에 전달 3. HandlerMapping에서 해당 controller에 처리 요청 4. controller에서 처리 결과를 Handler Adapter에서 ModelAndView 객체로 변환 하여 Dispatcher Servlet에 전달 5. Dispatcher Servlet에서 전달받은 ModelAndView 객체를 이용하여 매핑되는 View를 검색 6. viewResolver에서 처리 결과를 view에 전달 7. 처리결과가 포함된 view를 Dispatcher Servlet에 전달 8. Dispatcher Servlet에서 최종 응답 결과를 클..
2022.11.06 -
(2022-11-04)Spring Framework와 Spring Boot의 차이
Spring은 Java 기반의 오픈소스 Back-end 프레임워크입니다. 첫 번째 차이점, Dependency Spring Framework의 경우 dependency를 설정해줄 때 설정 파일이 매우 길고, 모든 dependency에 대해 버전 관리도 하나하나 해줘야 합니다. Spring Boot Framework의 경우 dependency를 Spring Framework보다 쉽게 설정해 줄 수 있습니다. 버전 관리도 자동으로 해줍니다. 두 번째 차이점, Configuration Spring Framework의 경우 configuration설정을 할 때도 매우 길고, 모든 어노테이션 및 빈 등록 등을 설정해 줘야 합니다. Spring Boot Framework는 application.properties파..
2022.11.04 -
(2022-11-03) JPA는 무엇인가?
JPA는 무엇인가? 자바진영에서 ORM 기술 표준으로 사용되는 인터페이스의 모음입니다. 실제 구현된 것이 아닌, 구현된 클래스와 매핑하기 위한 프레임워크입니다. 인터페이스 이기 때문에 Hibernate, OpenJPA등이 JPA를 구현하고 있습니다. - 특징 1. JPA가 제공하는 API를 사용하면 객체를 DB에 저장 관리할때 SQL을 작성하지 않아도 됩니다. 2. JPA가 개발자 대신 적절한 SQL을 생성 DB에 전달하고 객체를 자동으로 매핑해줍니다. 3.JPA는 내부적으로 JDBC API를 활용하는데, 개발자가 직접 JDBC API를 활용하면 패러다임 불일치, SQL 의존성 등으로 인해 효율성이 떨어집니다. 4.JPA 활용시 모든 SQL에 대해 개발자 대신 JPA가 자동으로 해결해준다는 점에서 생산성..
2022.11.03 -
2022-10-08
오늘은 3주간 해온 프로젝트의 중간 발표 날이였다. 멘토님께서는 어떤 기술스택을 사용할때 목적과 이유를 분명히 하라고 하였다. 이건 어디 분야를 가던지 항상 들어온 말 같았다. 그리고 테스트 코드에 관해서도 말씀을 해주셨다. 나같은 경우 spring boot framework를 사용하여 Junit를 사용하여 테스트 코드를 작성할 계획이였는데 모든 기능을 구현하고 작성할 계획이였다. 그와반대로 같은 팀원분은 테스트 코드를 주기적으로 작성을 하였다. 그것을 보고 멘토님이 테스트코드는 귀찬더라도 바로바로 작성을 해주는것이 좋다고 말씀을 해주셨다. 앞으로는 바로바로 작성하는 습관을 좀 들여야겠다. 그리고 실시간 채팅의 db로 redis를 사용하려고 했는데 멘토님이 redis의 캐시 기능과 펍섭 기능에 대해 말해..
2022.10.08