본문 바로가기

반응형
SMALL

전체 글

(89)
[CS] 라이브러리와 프레임워크의 차이 라이브러리 (Library) 어떤 기능을 구현하기 위해 미리 만들어진 함수들의 집합이다. 필요할 때 자유롭게 사용할 수 있다. 때문에 개발자가 자유롭게 원하는대로 라이브러리르 사용할 수 있다. (자유도 높음) 프레임워크 (Framework) 클래스와 라이브러리가 합쳐진 구조로, 협업 형태를 제공하는 것이다. 정해진 메뉴얼과 룰을 제공한다. 때문에 개발자는 코드 및 알고리즘을 사용하기 위해서 주어진 룰을 따라 사용해야 한다. (자유도 낮음) 요약 라이브러리와 프레임워크는 재사용 가능한 코드의 집합으로, 프로그래밍을 편리하게 할 수 있도록 도와주는 역할을 한다는 공통점이 있다. 하지만 사용하는 자유도에 따라서 라이브러리와 프레임워크로 나누어진다. References https://velog.io/@nemo/..
[CS/Data Structure] ArrayList와 LinkedList ArrayList ArrayList는 자바의 List 인터페이스를 구현한 클래스로, 일반적인 배열보다는 느리다. 하지만 초기 할당에서 메모리 크기를 지정해주어야 하는 일반 배열과는 달리, 크기 지정 없이 동적으로 값을 삽입하고 삭제할 수 있다. Index를 가지고 있고 무작위 접근도 가능하다. LinkedList LinkedList는 양방향 연결 리스트로, ArrayList와는 다르게 Element와 Element 간의 연결을 이용해서 구현되었다. 참조하려는 원소에 따라 정방향 또는 역순으로 순회하며 순차적으로 접근한다. 이러한 다른 특징으로 필요한 목적에 따라 성능의 차이도 발생한다. 목적이라 함은 데이터의 "삽입 및 삭제" 또는 "조회" !! 가 있다 !! 조회 ArrayList는 index를 가지기..
[날카로운 질문하는 머쓱이] 빈 스코프에 따른 생명 주기 스프링 IoC 컨테이너는 Bean 객체들을 책임지고 의존성을 관리한다. 스프링 Bean은 객체와 같이 초기화 및 종료 작업이 나눠 진행된다. 객체 생성부터 의존 관계 주입 -> 초기화 콜백 메서드 호출 -> 사용 -> 소멸 전 콜백 메서드 호출 -> 스프링 종료 와 같은 생명 주기를 가진다. 여기서 빈 생명주기 콜백은 3가지 방법으로 관리된다. 1. 인터페이스 (InitializingBean, DisposableBean) - InitializingBean 인터페이스의 afterPropertiesSet 메서드로 초기화를 진행한다. - DisposableBean 인터페이스의 destroy 메서드로 소멸을 진행한다. - 스프링 초기에 나온 방식으로 지금은 거의 사용하지 않는다. - 스프링 전용 인터페이스이기 ..
[날카로운 질문하는 머쓱이] 동등성 보장 동등성은 equals 메서드를 통해 논리적으로 같은 지위를 가졌는지를 판단하는 것이다. 즉, 사용자가 지정한 기준의 값이 같을 때 같다고 말할 수 있는 것이다. 이러한 동등성을 보장하기 위한 방법은 아래와 같다. 1. equals 메서드 재정의 같다의 기준이 되는 논리적 지위는 사용자가 요구사항에 맞춰 잘 재정의 해야 한다. 2. hashCode 메서드 재정의 Hash Table을 사용하는 자료형에서는 자료의 존재를 확인하기 위해 해싱 알고리즘을 사용한다. 그 과정에서 객체의 주소 값을 확인하는데, 동등성을 지니는 두 객체의 주소 값은 서로 다르기 때문에 이 과정에서 동일성 보장이 깨지게 된다. 따라서, equals 메서드와 함께 hashCode 메서드도 equals에서 재정의한 동등성의 기준 값으로 함..
[날카로운 질문하는 머쓱이] 웹 서버 최적화 방법 1. 웹 서버에서 메모리 캐시를 관리한다. : DB 정보를 매핑하고 사용자 인증에 시간이 소요될 수 있다. 따라서 응답 시간을 최적화 하기 위해 메모리 캐시를 사용하여 해당 정보를 저장할 수 있다. (메모리 캐시는 빠른 액세스를 위해 정보를 저장한다.) 2. 네트워크 제한 시간을 지정한다. : 네트워크 제한 시간을 지정함으로써 열려 있지만 stateless한 상태의 경우 사용자가 서버에 액세스하는 것을 방지할 수 있다. 따라서 열린 stateful 상태의 경우에 대한 응답 시간을 최적화 할 수 있다. 3. 사용할 스레드 수를 지정한다. : HTTP 요청은 스레드에 의해 처리되는데, 웹 서버가 처리할 수 있는 스레드 수를 지정하면 응답 속도를 최적화 할 수 있다. 4. 사용자가 HTTP POST 명령을 사..
[프로그래머스 데브코스 백엔드 3기] 10주차 회고 벌써 10주차라니 ㅇㅁㅇ ...!! 그리고 Spring Security로 삽질을 많이 한 것 같다. 저번 주 강의가 이틀 정도 밀려서 부랴부랴 들었다. 그리고 오늘은 금요일. 아직 강의가 좀 남아있다. 오늘 각 잡고 강의를 빡세게 돌릴 생각이다. 요즘은 Spring Security를 온전히 이해하기에는 어려워서 조금 가벼운 마음으로 강의를 듣고 있다. 실습 코드를 따라하는 것을 목표로 하며 ..!! 이렇게 조금 깊은 찍먹을 하고, 프로젝트에서 필요할 때 조금씩 찾아보면 점차 몰랐던 것이 이해되고 적응되지 않을까 생각이 들기도 했기 때문이다. 그래서 그런 지 근 몇 주간 열심히 살아왔던 생활에 비해 조금 헤이해진 것 같았다. 풀린 느낌 ..? 크리스마스 후 데브코스는 약 일주일 간 방학을 준다. 이번 주까..
[프로그래머스 데브코스 백엔드 3기] 9주차 회고 9주차! 스프링 시큐리티(Spring Security)와 JPA 게시판 과제를 진행하다보니 한 주가 뚝딱 흘렀다 :) 스프링 시큐리티 (Spring Security) 삽질 ..? ㅋㅋㅋㅋ큐ㅠㅠㅠㅠ 강의에서는 WebSecurityConfigurerAdapter를 상속해서 사용하는 방향으로 진행하지만, 어느 순간부터 지원이 중단되어서 Override 대신 Bean으로 등록하는 방법을 찾아가며 강의 실습을 따라갔다. 우당탕탕 개발 일지의 아주 좋은 컨텐츠. 또한 스프링 부트 버전 3.0으로 쓰고 있었는데, 사용되지 않는 메서드가 많아 2.7로 버전 다운하여 실습을 진행하였다. [우당탕탕 개발일지] WebSecurityConfigurerAdapter 지원 불가 이번 주부터 Spring Security 관련 강의..
[프로그래머스 데브코스 백엔드 3기] 8주차 회고 회고가 2주 밀렸다.. ㅠㅠ 정신없이 살다보니 8주차 기억이 안 나서 학습 기록과 할 일 기록 이것저것 뒤져보다 복기해서 기록해본다. 그리고 앞으로 진짜 매주 금요일에 회고 쓰는 날로 못 박아놔야겠다. 사람의 기억력이란 ㅠㅅㅠ 8주차는 JPA를 배워보는 한 주였다. DB Connection 연결과 쿼리를 수동으로 짜야하는 JDBC와 다르게 JpaRepository 구현과 메서드 이름만으로 DB에 접근하고 데이터를 보내고 받는 것이 전체적으로 신기했다. JDBC, Mybatis, JPA, JPA 환경 세팅 1일차에서는 커리큘럼 소개와 JDBC와 비교하여 JPA란 무엇인지 배울 수 있었다. 확실히 비교해서 들으니 JPA의 편리성이 좀 더 가깝게 다가왔고, JDBC에 비해 좀 더 객체지향적으로 코드를 작성할 ..

반응형
LIST