본문 바로가기

전체 글

(30)
[형사사법입문] 수사와 공판 수사기관수사기관은 수사의 단서(변사체 발견, 고소, 고발, 언론보도)가 있으면 수사를 개시한다.수사기관은 경찰, 특사경, 검찰, 군검찰이 있다.검찰청 송치 (범죄수사규칙 제 189조)사법경찰관이 수사한 형사사건에 대한 수사기록과 증거물을 검찰에 송부하는 것경찰관서장 또는 해양경비안전기관의 장의 지휘를 받아 진행관할 지방검찰청 검사장 혹은 지청장에게 송치한다.검사의 기소여부 판단검사는 피의자에 대해 보강수사를 추가하여 공소제기 여부를 판단한다.한국의 형사소송법은 기소편의주의를 채택 중이다.기소편의주의피의자를 유죄로 판단할 만한 객관적 혐의가 구비되고 처벌의 필요가 인정되면 공소를 제기한다.객관적 혐의가 있더라도 공소를 제기하지 않을 수 있다. (형사소송법 제 247조)각종 조건부 불기소 처분도 가능하다. ..
[검색 API 명세 정의 꿀팁] 매개변수 And, Or 조건 사용하기 고급 검색 API를 구현하다 보면 조건이 복잡해질 때가 있다. 예를 들면 아래와 같다. 제목은 '하'로 시작하면서 / '호'도 들어가고 / 아니면 '휴'가 들어간다던가 / 저자는 'CB'인 콘텐츠를 검색해 줘 혹은 일단 제목에 '아이스크림'이 들어가는데, 제목이 '멋있는'이 들어가거나 저자가 '구상덕'씨인 콘텐츠 검색해 줘 첫 번째의 경우는 사실 제목에만 조건이 붙어 어찌저찌 구현했었지만, 두 번째의 경우는 같은 Column이 아닌 다른 Column 내에서 조건을 줘야 했기 때문에 혼란에 빠졌었다. 그래서 내가 생각한 방법은 그룹으로 묶어서 검색하자!이다. 일단, 파라미터를 하나로 줄였다. "keywords"로 표현식을 받을 것이다. 표현식의 최소 단위는 검색 기준 열(column)과 키워드(keywor..
[Account Manager] 00.다짐 Flutter 공부하기 + 개발 영어 공부하기 백엔드 위주의 개발 업무를 하고 있다보니, 프론트엔드 감이 다 떨어져서 살려야 한다는 신호가 세게 왔다. 그런데 너무 하기 싫다.. 그렇기 때문에 두 가지 목적을 세워 프론트엔드 감을 살리고자 한다. 1. 영어 공부하기 2. 쓰고싶은 앱 만들기 앞으로 Flutter를 쓰고 싶은 앱을 만드는 과정 가운데 영어 공식 문서 + 영어 블로그 with 번역기만 사용하여 개발할 것이다. 다짐해야 실행함으로 일단 다짐만..!
<업무를 행복하게 ☺️> JPA 적용!! 유지보수를 맡고 있는 프로젝트를 리뉴얼? 리팩토링?하는 작업을 맡게 되었다. 해당 프로젝트는 간단한 CRUD 작업이 많다. 솔루션 형식으로 여러 곳에 설치하는 형식이다. 이때, 다른 데이터베이스를 사용해야 할 수도 있다. 리뉴얼 시 데이터베이스를 크게 변경해선 안된다. 위 특징을 갖고 있다. 세 가지 특징을 제목 삼아 JPA를 적용할 때의 장점 및 과정 후기를 남겨보겠다. 간단한 CRUD 작업이 많다. JPA를 사용해야 하는 1순위 이유였다. MyBatis를 사용한다면 쿼리 만들기 xml 만들기 VO, DTO 만들기 ... 등의 과정들을 수행해야 했겠지만, JPA를 사용한다면 엔티티 만들기 레파지토리 만들기 가 끝이다. 이렇게 보면 별로 차이나 보이지 않는데..? 실제로는 매우 큰 차이가 있는 걸 알아주..
<업무를 행복하게 ☺️> 회사 바꾸기 ON! 아, 하기 싫어~~ 어느 날, 갑자기 일이 재미없어짐을 느꼈다. 이직을 할 수도 있지만 하지 않겠다. 왜냐, 회사에 대한 애정이 있고 우리 회사는 성장 중인 회사이다. 그만큼 아직 안 고였기에, 내가 노력한다면 재미있게 만들 수 있기 때문이다. 내 입장에서? 더 좋은 방향으로 가는 와중에 참여할 수 있는 점이 즐겁기 때문이다. 무엇을 했는가? 지금까지 더 즐거운 업무를 위해 무엇을 했는가에 대해. 1. 모듈 만들기 우리 회사는 JS 백엔드 프로젝트는 express만 기반으로 하여 NestJs와 같은 프레임워크는 쓰지 않는다. 그 이유는 유연함 때문이다. 역시 DB 관련 로직도 벡엔드 프로젝트에 종속되어 있었다. 더욱 더 유연하고, 소스 관리를 원활하게 하기 위해 db 로직을 별도로 분리해서 모듈로 만들..
[PostMan] Chrome 브라우저 요청 포스트맨에 복붙하기 매번 포스트맨 요청 만들 때마다 body 복붙하는 것이 귀찮아서 찾아보았다. 아주 간단해서 일단 복붙하고 불필요한 query나 header를 제거하는 형식으로 저장해두면 좋을 것 같다. 간단하게 요약해보자면, 공통으로 지원하는 cURL로 복붙하면 된다. 1. 브라우저 > 개발자 모드 > 네트워크탭 > 해당 요청 복사 > cURL로 복사 2. 좌측 상단의 Import 버튼 클릭 후 붙여넣기 3. 따란~~
[JetBrains IntelliJ] 경고창 안 사라짐 Warnings in IntelliJ don't disappear 아니~~ 수정했는데 왜 경고창 안 사라지는데~~ (물론 사진 속 내용은 수정 안 한 것이 맞다. 하지만, 캡처한 것을 까먹어버렸다는 것..) 그 이유를 찾기 위해 IntelliJ의 idea.log를 찾아 들어가 본다. 자~ 아래 보면, grazie?가 문제로 보인다. 검색해 보니 플러그인이라고 한다. 설정에 들어가 해당 플러그인을 비활성화하니 "그 노란 줄"이 드디어 사라졌다~!~! 참고 https://youtrack.jetbrains.com/issue/IDEA-321326 Warnings in javascript don't disappear : IDEA-321326 What steps will reproduce the issue? 1. ..
[DB] Incorrect string value: '\xF0...' - 이모지 저장 시 에러 Too Busy;DR 😁🙏🥹❤️‍🔥 utf8에서 이모지를 저장하려 할 때 뱉는 오류이다. DB의 인코딩 방식을 utf8mb4로 지정해준다. + Connection에서도 utf8mb4로 지정해주는 것을 잊지 않는다. 환경 nodeJs / MySQL / promise-mysql(라이브러리) 요정도? 배경지식 1. UTF8은 1~4바이트의 가변 바이트를 가짐으로써 용량을 절약했다. 2. MySQL에서는 UTF8을 3바이트 가변 자료형으로 설계했다. (모든 언어가 21bit에 저장되기 때문) 3. 이모지는 4바이트를 갖는다. => mysql의 utf8 인코딩으로는 이모지를 저장할 수 없다..! 4. UTF8mb4는 UTF8과 비슷하지만 확장된 문자를 지원하기 위해서 4바이트까지 저장할 수 있는 Charset이다..