본문 바로가기

'ㅂ'32

윗사람말 ,보안 조치 iconv 지난 주에 있던 일을 기억하기 위해 적고있다.  최근 glibc 의 iconv 함수에서 보안 취약점이 발견되어 glibc를 2.4version 이상으로 업데이트를 해달라는 요청이 있었다.당일 오후 시간까지 업데이트 가능 확인 요청이였다.  부랴부랴 테스트 서버를 스냅샷을 만들어 yum update ...  안되서  wget 파일받아서 build 하고 시도해봤다 하지만 패키지 의존관계 때문에 쉽지않았다 ( glibc 버전이  2.17 이였다.)  시간은 가고에러가 뜨고 ... 윗사람에 도움 요청드렸다  보시더니 라이브러리 업데이트는 고려해야할 사항도 많고 문서에 참고 사이트 확인해보면 업데이트 외의 조치 방안이 있었다.   다른 회사 사람이지만 직급이 높고 시간도 없다 보니 제시한 방향만 봤던거 같다문서에.. 2024. 5. 7.
함수형 프로그래밍 객체지향형 프로그래밍을 먼저 접했었다. 최근데 많이 들리고 보이는 함수형 프로그래밍에 대해 알아보려 한다. 프로그래밍 패러다임 명령형 프로그래밍 : 무엇을 어떻게 할 건지에 대해 초점 - 절차지향 프로그래밍: 수행되어야 할 순차적인 처리 과정을 포함하는 방식 ( C ,C++ ) - 객체지향 프로그래밍: 객체들의 집합으로 프로그램의 상호작용을 표현 ( C++ , Java , C#) 선언형 프로그래밍: 무엇을 한건지에 대해 초점 - 함수형 프로그래밍: 순수함수를 조합하고 소프트웨어를 만드는 방식( 클로저, 하스켈, 리스프) 함수형 프로그래밍이란? 함수형 프로그래밍은 거의 모든 것을 순수 함수로 나누어 문제를 해결하는 기법으로, 작은 문제를 해결하기 위한 함수를 작성하여 가독성을 높이고 유지보수를 용이하게 해.. 2023. 5. 2.
Restful API restful API 얘기는 많이 들어 봤을 것이다. 기본 API에 Restful 개념을 합치거라 생각한다. 일단 API먼저 보자면 API란 API는 정의 및 프로토콜 집합을 사용하여 두 소프트웨어 구성 요소가 서로 통신할 수 있게 하는 메커니즘입니다. 예를 들어, 기상청의 소프트웨어 시스템에는 일일 기상 데이터가 들어 있습니다. 휴대폰의 날씨 앱은 API를 통해 이 시스템과 ‘대화’하여 휴대폰에 매일 최신 날씨 정보를 표시합니다. REST 란 Representational State Transfer 의 약자로 아래의 구성을 갖는다 자원( RESOURCE ) - URI 행위( Verb ) - HTTP METHOD 표현( Representations ) REST 특징 1) Uniform Interface(.. 2023. 4. 19.
정렬 알고리즘 처음 알고리즘을 배울때 배웠던 내용이 정렬이었다. 정렬 종류도 많고 헛갈리 때가 있어 정리 하려한다. 1. 삽입 정렬 , 시간 : O(n^2) , 공간 : O(n) 삽입 정렬이란? 자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여, 자신의 위치를 찾아 삽입함으로써 정렬을 완성하는 알고리즘이다. function insertSort(list){ let key,j ; for(const i in list){ key = list[i]; j = i-1; while( j >= 0 && key < list[j] ){ swap(list,j,j+1); j--; } list[j+1] = key; } return list; } function swap(list,a,b){ let temp = lis.. 2023. 4. 10.
알고리즘 들어가기전에 알고리즘을 공부 하기전에 알면 좋을 내용을 적었다. 일단 표기법 알고리즘의 종류 , 자료구조 종류 그 외에도 기본적인 내용(정의 및 관련 내용)을 정리하려한다. 알고리즘이란? 어떠한 문제를 해결하기 위한 일련의 절차나 방법을 공식화한 형태로 표현 알고리즘의 조건, 분석 기준 등 내용 정리가 좋은 블로그 하단에 링크 두었습니다. O(n) 빅-오 (Big-O) - 상한 점근 빅-오메가 (Big-Ω) - 하한 점근 빅-세타 (Big-θ) - 상하한의 평균 있지만 빅-오만 쓰는듯 하다. 시간복잡도 : 입력값(크기)의 따라 실행할 때 , 연산의 수 (실행속도) 공간복잡도 : 입력값(크기)의 따라 실행할 때 , 저장 공간 공간복잡도는 하단에 정리 잘된곳을 링크 해두었습니다. O(log n) O(1) < O(n) <.. 2023. 4. 10.
싱글톤(Singleton) 싱글톤 애플리케이션이 시작될 때 어떤 클래스가 최초 한번만 메모리를 할당 그 메모리에 인스턴스를 만들어 사용하는 디자인 패턴. 장점 데이터 공유가 쉽다. 메모리 낭비 방지 두 번째 이용 시 부터 객체 로딩시간 감소 단점 너무 많은 일을하거나 데이터 공유 시 다른 클래스의 인스턴스들 간에 결합도가 높아져 개발-폐쇄 원칙을 위배. 사용 예 데이터 베이스에서 커넥션 풀, 스레드 풀, 캐시 , 로그 기록 객체 등 구현 1. Lazy initialization ( 게으른 초기화 ) public class ThreadSafe_Lazy_Initialization{ private static ThreadSafe_Lazy_initialization instance; private ThreadSafe_Lazy_Initia.. 2023. 4. 10.
jdbc 예외 처리 처음에는 공식 처럼 외웠다 . 신입들은 내용을 잘모르는 사람이 많아 작은자리에서 간단하게 설명했었다. 그럼 정리를 해본다. try-catch-finally 를 사용한다. 보통 ---------------- rs.close(); pstmt.close(); con.close(); ---------------- 이 부분을 try{ Connection con = null; PrepraredStatement pstmt = null; ResultSet rs = null; 1) }catch(Exception e){ 2) e.printStackTrace(); }finally{ 3) } 어느 부분에 쓸지 ? 그리고 또 어떻게 처리를 할지 생각 해보면 도움이 될거같다. 1) try{ Connection con = null.. 2023. 4. 10.
pg_stat_statements postgres database 를 사용하고 있는데 쿼리 실행 되었을때 어떤 쿼리가 문제(실행속도)인지 알면 좋을거 같아 찾아보았다. 현재 linux centos 7 버전대 에서 사용하기 때문에 맞춰 글을 쓰겠습니다. (테스트 서버 및 운영 서버에 적용) 설치 vi /var/lib/pgsql/[버전]/data/postgresql.conf vi /var/lib/pgsql/9.6/data/postgresql.conf #주석 제거 후 pg_stat_statements 기입. shared_preload_libraries = 'pg_stat_statements' # (change requires restart) db가 실행 중이라면 재기동해야한다. psql #만약 다른 데이터베이스에 한다하면psql -d [dbn.. 2023. 4. 1.
critical rendering path 중요 렌더링 경로 (Critical Rendering Path) 브라우저가 HTML, CSS, Javascript를 화면에 픽셀로 변화하는 일련의 단계 이를 최적화하는 것은 렌더링 성능을 향상시킵니다. CRP (critical rendering path) 이해하기 웹 성능 : 서버의 요청과 응답, 로딩, 스크립팅, 렌더링, 레이아웃, 픽셀 그리기 HTML 요청 -> 서버 (응답 헤더 or 데이터 -> HTML ) -> 브라우저 (HTML 분석 , DOM 트리 변환) / css,script 에 포함된 외부자원을 찾을때마다 요청( 완료 되기 까지 HTML분석 작업 하는 일부 요청은 중단) -> 브라우저 ( DOM 과 CSSOM 이 완료되면 렌더 트리를 생성, 컨텐츠 스타일 계산) -> 렌더트리 완료 ( 모든.. 2023. 3. 30.