일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Android Timer
- IT 직무 변경
- IT 포지션 변경
- 운영체제 공룡책
- 운영체제 다중모드
- spring sql injection
- spring dynamic query sql injection
- 운영체제 작동방식
- 운영체제 자원관리
- aws ec2 scp 파일 전송
- 운영체제 커널모드
- spring exceptionHandler response cause
- 백엔드 직무 변경
- spring exception stackTrace remove
- android 타이머
- 개발 직무 변경
- spring sql injection 방지
- 운영체제 멀티 태스킹
- spring exception cause remove
- 운영체제 멀티 프로그래밍
- spring 동적 쿼리 주의사항
- OS 자원관리
- spring exceptionHandler reposnse stackTrace
- spring paging sort sql injection
- ec2 scp 파일 전송
- 운영체제 개념
- spring responseEntity response cause
- 백엔드 포지션 변경
- spring responseEntity response stackTrace
- 개발 포지션 변경
- Today
- Total
목록분류 전체보기 (60)
오늘도 삽질중
본 글은 운영체제 공룡책을 읽고 기억할만한 부분, 또는 개념정리 차원에서 중요하다고 생각되는 내용을 정리한 글입니다. 피드백은 환영합니다. 자원관리 파트에서 운영체제가 각 자원(프로세스,메모리 등등) 관리에서 어떤 역할을 하는지 중점을 두고 작성하였습니다. 프로세스 관리 프로세스는 명령을 지정하는 프로그램 카운터를 가진 능동적인 개체이다. 한 프로세스의 수행은 반드시 순차적이며, CPU는 그 프로세스가 끝날 때 까지 프로세스의 명령들을 차례대로 수행한다. 두 개의 프로세스가 동일한 프로그램과 연관이 있더라도, 별도의 수행 순서로 간주한다. 운영체제는 프로세스 관리와 연관해 다음과 같은 활동에 대한 책임을 진다. 사용자 프로세스와 시스템 프로세스의 생성과 제거 CPU에 프로세스와 스레드 스케줄하기 프로세스..
본 글은 운영체제 공룡책을 읽고 기억할만한 부분, 또는 개념정리 차원에서 중요하다고 생각되는 내용을 정리한 글입니다. 피드백은 환영합니다. 운영체제는 프로그램이 실행되는 환경을 제공한다. 컴퓨터의 전원을 키거나, 재부팅 할 때는 부트스트랩 프로그램(초기 프로그램) 을 실행해야 한다. 부트스트랩 프로그램은 운영체제를 적재하는 방법 및 시스템 실행을 시작하는 방법을 알아야 하는데 이 목적을 달성하기 위해 운영체제 커널을 찾아 메모리에 적재해야 한다. 커널이 적재되어 실행되면 시스템과 사용자에게 서비스를 제공할 수 있다. 시스템이 완전히 부팅되면 어떤 이벤트(인터럽트) 가 발생할 때 까지 기다린다. 다중 프로그래밍과 다중 태스킹 (Multi programming and Multi tasking) 다중 프로그래..
프로젝트에서 동적으로 쿼리를 처리하는 API 에서 SQL Injection이 발생하는 취약점이 확인됬다. 발생 위치는 페이징 처리 API 에서 파라미터로 sort 를 넘겨주는 부분에 임의의 쿼리를 삽입 할 경우 그대로 실행되었다. 직접 테스트해보니 DB 자체에 sleep 을 걸수도 있고, 잘하면 삭제 및 데이터 추가도 가능하다고 판단되었다. 우선 해당 프로젝트는 아래처럼 구조가 되어있다. getOrderByProperty 는 아래처럼 구성되어 있다. protected OrderSpecifier[] getOrderByProperty(Sort sort, Class clazz){ return sort.stream().map(x -> { //문제가 되는 부분 String property = x.getProper..
예외처리를 전역적으로 사용하기 위해 @ExceptionHandler 를 사용해 처리하곤 합니다. 아래처럼 말이죠 @ExceptionHandler(InvalidDataAccessApiUsageException.class) public ResponseEntity handle(InvalidDataAccessApiUsageException exception, WebRequest request){ return new ResponseEntity( new ApiException(ApiError.COMPANY_IS_NULL), HttpStatus.BAD_REQUEST ); } 이렇게 설정을 한 후 테스트를 하다보면 아래 포맷으로 에러 메시지가 나오는 경우가 있습니다. { "cause": null, "stackTrace..
본 글은 운영체제 공룡책을 읽고 기억할만한 부분, 또는 개념정리 차원에서 중요하다고 생각되는 내용을 정리한 글입니다. 피드백은 환영합니다. 운영체제란 무엇이며 어떠한 일을 하는가? 컴퓨터 하드웨어를 관리하는 소프트웨어 (OS) 이다. 사용자와 하드웨어 사이에서 중재자 역할을 한다. 운영체제의 근본적인 책임은 자원들을 프로그램에 할당하는 것이다. ex) 메모리,CPU 등등.. 컴퓨터의 관점에서 운영체제는 하드웨어와 밀접하게 연관되어 있다. 그러므로 운영체제를 자원 할당자(resource allocator)로 볼 수 있다. 운영체제는 사용자를 위해 프로그램 간의 하드웨어 사용을 제어하고 조정한다. 운영체제는 시스템이 동작할 때 자원을 적절하게 사용할 수 있는 방법을 제공한다. 운영체제는 그 자체로는 유용한 ..
필자는 안드로이드 개발을 약 3년동안 하다가 백엔드 개발로 포지션을 변경하였습니다. 변경하게 된 계기는 이전부터 백엔드 개발을 해보고 싶다는 생각이 들었고, 회사에서도 긍정적으로 받아들여져 직무를 변경하게 되었습니다. 어느 덧 10개월이라는 시간이 지났고, 포지션을 바꾸면서 느낀점과 저와 같은 고민을 가진 분들에게 조금이나 도움이 되기를 바랍니다. 개인적으로 저는 언어적인 부분에서는 크게 괴리감이 없었습니다. 회사 백엔드는 스프링 부트를 사용하고 있고 주 개발언어는 자바를 사용하고 있습니다. 처음에 안드로이드 개발을 시작할 때 자바로 시작했고, 직무 변경 이전까지는 코틀린으로 개발을 진행했습니다. 이미 한번 경험해본 언어이기 때문에 크게 괴리감은 없었습니다. 다만 처음 백엔드 개발하며 답답했던 부분은 눈..
scp 파일전송에 관련된 여러 블로그가 있지만 pem 파일 기반으로 전송하는 방법은 찾기가 힘들어 정리해봅니다. 우선 scp 명령어 사용시 사용되는 옵션들의 설명은 아래와 같습니다. 옵션 설명 -r 디렉터리 전송 시에 사용됩니다. -r 옵션을 사용하면 디렉터리와 그 안에 있는 파일 및 서브디렉터리가 복사됩니다. -P 원격 SSH 포트를 지정할 때 사용됩니다. 기본 포트는 22이며, 만약 다른 포트를 사용하려면 -P 옵션을 사용하여 지정합니다. -i 개인 키 파일을 지정할 때 사용됩니다. SSH 연결을 위해 사용되는 개인 키 파일의 경로를 지정합니다. -v 디버깅 정보를 출력합니다. 연결 및 전송 과정에서 발생하는 디버그 메시지를 볼 수 있습니다. -C 데이터를 압축하여 전송합니다. 네트워크 대역폭을 절약..
멀티 그라데이션 원형 프로그래스바를 프로그래밍으로 구현해보았습니다. 3개 이상의 색으로 그라데이션을 표현해 줘야 되는데, 구글링을 해보니 XML 방식으로 세팅하는건 최대 2가지 색 조합만 가능한 것으로 확인했습니다. 페인트과 애니메이션을 사용해서 구현을 했고, 그라데이션은 LinearGradient 를 사용했습니다. 프로그래밍으로 구현을 했으니 컬러 변경이 필요한 경우 컬러 코드값만 변경해주므로 변경에도 용이하다 판단됩니다. 또한 애니메이션을 적용해서 stop and restart 개념도 작업을 했습니다. import android.animation.Animator import android.animation.ObjectAnimator import android.content.Context import ..
이 기능을 구현 하기 위한 비하인드 스토리가 있다. 필자는 현재 영상관련된 앱을 개발중에 있다. (게임이 아니다) 보통은 영상을 다운로드 방식으로 처리하는게 일반적이지만 테스트 일정으로 인하여 다운로드 기능을 배제하고 급하게 모든 mp4 파일을 앱에 적재해서 내부테스트로 앱을 배포해야 되는 상황이였다. 그래서 mp4 영상을 Raw 폴더에 넣고 스토어에 올리려고 하니 앱 사이즈가 200MB 이상은 올릴수가 없다. 급하게 부랴부랴 찾아보니 Play Asset Delivery 또는 Play Feature Delivery 두가지 방식을 찾을 수 있었다. https://support.google.com/googleplay/android-developer/answer/2481797?hl=ko 문제는 작년 8월부터 ..
1. 상단 아이템의 갯수와 상관없이 무조건 버튼이 하단에 고정이 되야 하는 경우 @Composable private fun initView() { val sampleData = mutableListOf() (1..50).forEach { sampleData.add("Sample Data $it") } Column( modifier = Modifier .fillMaxSize() .padding(20.dp) .verticalScroll(rememberScrollState()), horizontalAlignment = Alignment.CenterHorizontally ) { sampleData.forEach { Text( text = it, color = Color.Black, fontSize = 14.sp..