728x90

개발 287

[Java] 컬렉션 프레임워크 (1)

자바의 정석 챕터 11을 읽고 정리 1. 컬렉션 프레임워크 - 데이터 군을 저장하는 클래스들을 표준화한 설계 - 컬렉션은 다수의 데이터를 말한다. 1.1 컬렉션 프레임워크의 핵심 인터페이스 - 컬렉션 데이터 그룹은 3가지 (1) List: 순서가 있는 데이터 집합. 중복 허용 구현클래스: ArrayList, LinkedList, Stack, Vector 등 (2) Set: 순서가 없는 데이터 집합, 중복 허용X 구현클래스: HashSet, TreeSet 등 (3) Map: 키와 값의 쌍으로 이루어진 데이터 집합. 순서 없음. 키는 중복 허용X. 값은 중복 허용 - Vector나 Hashtable은 사용하지 말고, ArrayList, HashMap 사용하기 Collection인터페이스 - List와 Set..

[Spring] 스프링 시큐리티 (3)

스프링 시큐리티가 변경되었다. - 버전 5.7.0-M2 버전부터 변경되었고, SecurityFilterChain을 빈으로 등록해서 사용해야 한다. - 아래 코드는 카카오 로그인 구현 중에 작성한 코드다. private final CustomOauth2UserService customOauth2UserService; @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http .csrf().disable() // enable h2-console .headers() .frameOptions() .disable() .and() .authorizeRequests() .antMatchers("/api/**").perm..

[RN] React Navigation BottomTab 아이콘 변경

리액트 네이티브로 간단한 앱을 만들면서 겪었던 일을 기록합니다. 리액트 네이티브 버전 : "react-native": "0.69.2" - 지난번에 하단 탭을 만들었는데 거기에 아이콘을 넣으려고 react-native-vector-icons 라이브러리를 설치했다. - 하지만 자꾸 typescript에서 에러가 발생했다. - 원인은 타입스크립트용 라이브러리를 추가로 설치해야되는 것이었다. npm install --save react-native-vector-icons npm install @types/react-native-vector-icons - 원하는 아이콘을 선택해서 넣었는데, 계속 에러가 떴다. - 이전과 다르게 "react-native-vector-icons": "^9.2.0" 버전에서는 pod ..

[Fiber] Go로 Backend 시작하기

전 회사에서 쓰던 Golang framework Fiber를 공부하려고 한다.express와 비슷해서 찍먹 수준으로 해봤는데, 조금씩 공부해보려고 한다. 당시 go 버전이 1.12였는데, 지금은 1.17이다.내가 당시 개발했던 기능이 버전에 큰 영향이 있을 것 같진 않을 것 같다. 먼저 fiber를 다운로드.go get -u github.com/gofiber/fiber/v2 예전엔 잘됐는데,cannot find package "github.com/gofiber/fiber/v2" in any of: c:\go\src\github.com\gofiber\fiber\v2 (from $GOROOT) C:\Users\Administrator\go\src\github.com\gofiber\f..

개발/Go 2022.08.10

[RN] React Navigation TopTab 추가

리액트 네이티브로 간단한 앱을 만들면서 겪었던 일을 기록합니다. 리액트 네이티브 버전 : "react-native": "0.69.2" - 지난번에 하단 탭을 만들었었다. - 이번에는 상단에 위치하는 탭을 만들어보았다. npm i @react-navigation/material-top-tabs - 라이브러리를 설치해준다. - 다음은 바로 코드 작성 import React from 'react'; import {createMaterialTopTabNavigator} from '@react-navigation/material-top-tabs'; import TestScreen from './TestScreen'; import Test2Screen from './Test2Screen'; const TopTap ..

[HTTP] 커넥션 관리

HTTP 완벽가이드 읽은 후 정리 - HTTP는 어떻게 TCP 커넥션을 사용하는가 - TCP 커넥션의 지연, 병목, 막힘 - 병렬 커넥션, keep-alive 커넥션, 커넥션 파이프라인을 활용한 HTTP의 최적화 - 커넥션 관리를 위해 따라야할 규칙들 1. TCP 커넥션 - HTTP 통신은 패킷 교환 네트워크 프로토콜들의 계층화된 집합인 TCP/IP를 통해 이루어진다. - 커넥션이 맺어지면 클라이언트와 서버 간에 주고 받는 메시지들은 안전하게 전달된다. 신뢰할 수 있는 데이터 전송 통로인 TCP - TCP 커넥션은 인터넷을 안정적으로 연결해준다. - TCP는 충돌 없이 순서에 맞게 HTTP 데이터를 전달한다. TCP 스트림은 세그먼트로 나뉘어 IP 패킷을 통해 전송 - TCP는 IP패킷이라고 불리는 작은..

개발/ETC 2022.08.08

[Java] 객체 지향 설계 5원칙 - SOLID

스프링 입문을 위한 자바 객체 지향의 원리와 이해를 읽고 간단한 정리. SOLID는 아래 5가지 원칙의 앞 글자를 따서 부르는 이름 (1) SRP(Single Responsibility Principle): 단일 책임 원칙 (2) OCP(Open Closed Principle): 개방 폐쇠 원칙 (3) LSP(Liskov Substitution Principle): 리스코프 치환 원칙 (4) ISP(Interface Segregation Principle): 인터페이스 분리 원칙 (5) DIP(Dependency Inversion Principle): 의존 역전 원칙 1. SRP - 단일 책임 원칙 어떤 클래스를 변경해야 하는 이유는 오직 하나뿐이어야 한다. - 단일 책임 원칙은 클래스 이외에도 속성, ..

[Java] 자바가 확장한 객체 지향

스프링 입문을 위한 자바 객체 지향의 원리와 이해를 읽고 간단한 정리. 1. abstract 키워드 - 추상 메소드와 추상 클래스 - 추상메소드는 선언부는 있지만 구현부가 없는 메소드 - 추상 메소드를 하나라도 갖고 있는 클래스는 반드시 추상 클래스로 선언해야 함 - 추상 클래스의 필요 이유 public class Driver { public static void main(String[] args) { Animal[] animals = new Animal[3]; animals[0] = new mouse(); animals[1] = new cat(); animals[2] =. ew dog(); for (int i = 0; i < animals.length; i++) { anumals[i].cry(); } ..

[Java] 자바와 객체 지향 (2)

스프링 입문을 위한 자바 객체 지향의 원리와 이해를 읽고 간단한 정리. https://devhooney.tistory.com/74 [Java] 자바와 객체 지향 (1) 스프링 입문을 위한 자바 객체 지향의 원리와 이해를 읽고 간단한 정리. 1. 객체 지향의 4대 특성 - 캡슐화: 정보 은닉 - 상속: 재사용 - 추상화: 모델링 - 다형성: 사용 편의 2. 클래스 : 객체 = 붕어 devhooney.tistory.com 이 포스트와 이어지는 내용 1. 다형성: 사용편의성 - 객체 지향에서 다형성은 오버라이딩, 오버로딩으로 대표된다. - 오버라이딩, 오버로딩의 차이 1. 오버라이딩은 같은 메소드, 같은 인자 목록으로 상위 클래스의 메소드를 재정의 2. 오버로딩은 같은 메소 이름, 다른 인자 목록으로 다수의 ..

728x90