본문 바로가기

전체 글

(105)
string 타입 비교 조건문에서 NPE 예방하기 코딩할 때 실수 줄이기 위해 항상 리터럴을 앞에 두는 패턴을 습관화 하도록 하자.  기존 :   개선 :     만약, jobsecode가 null 일 경우, 첫번째는 NullPointerException이 발생하지만, 두번째 경우는 발생하지 않음! 첫번째는 jobsecode가 비교의 주체이기 때문에 먼저 나서고, 두번째는 비교 대상이기 때문에 먼저 나서지 않기 때문.
spring 트랜잭션과 db트랜잭션 1. Spring 트랜잭션 vs. DB 트랜잭션 차이점비교 항목Spring 트랜잭션DB 트랜잭션주체Spring 프레임워크 (트랜잭션 매니저)DBMS (예: CUBRID, MySQL, Oracle 등)관리 대상여러 개의 DB 트랜잭션, 서비스 계층에서 트랜잭션 제어 가능하나의 DB 커넥션 내에서 실행되는 SQL 문들적용 범위메서드 단위로 트랜잭션 관리 가능 (@Transactional 사용)특정한 SQL 쿼리 실행 단위로 관리전파(Propagation) 지원여러 개의 트랜잭션을 하나로 묶어서 관리 가능단일 DB 커넥션 내에서만 관리트랜잭션 롤백런타임 예외가 발생하면 자동으로 롤백 가능ROLLBACK 명령을 직접 실행해야 함다중 데이터베이스 지원여러 개의 DB와 연동 가능 (JTA 사용)하나의 데이터베이스에..
.size()와 equals select로 데이터를 불러올때 * 으로 전체불러오는거 지양해야함 ==> 비용이 많이든다. 원하는컬럼만 추출하기! 갯수? 만필요할때 , count를 해서 반환하도록 하기.리스트를 반환해서, 서비스로직에서 size메서드로 하는거 지양해야함.=>null일때 타입에러 발생할수도 잇음.is null이면 string이 반환타입인데, size와 타입불일치 에러 발생할 수 잇다. 부등호는 java코드에서 지양하기 equals를 써라.안읽힐 수 있기 때문. 그럼 조건문을 무시하고 그냥 실행해버릴 수도 있음.
서버의 파일처리 원리를 이해하는 여정.. 클라이언트가 첨부한 파일을 서버에서 처리하여 저장할때, 코드로 파일객체를 새로 생성해서 그것을 저장하는게 무슨 의미인지 모르겠음. 하드웨어시스템과 소프트웨어의 시스템 흐름에 따라 자세히 설명해줘 ChatGPT의 말:클라이언트가 첨부한 파일을 서버에서 처리하여 저장할 때, "파일 객체를 새로 생성해서 그것을 저장한다"는 개념은 소프트웨어의 관점에서 파일 처리 과정을 어떻게 수행하는지에 대한 설명입니다. 이를 좀 더 구체적으로 하드웨어와 소프트웨어 시스템 흐름을 따라가며 설명드리겠습니다.1. 클라이언트에서 파일 업로드클라이언트는 웹 브라우저나 앱을 통해 서버에 파일을 업로드할 때, 파일을 HTTP 요청의 일부로 서버에 전송합니다. HTTP 요청에서 파일은 multipart/form-data 형식으로 전송되며..
controller에서 HttpServletRequest request를 받아온 후, MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request; 로 형변환을 하는데 이유가뭐지 controller에서 HttpServletRequest request를 받아온 후, MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request; 로 형변환을 하는데 이유가뭐지? ChatGPT의 말:HttpServletRequest를 MultipartHttpServletRequest로 형변환하는 이유는, 클라이언트가 multipart/form-data 형식으로 파일을 업로드했을 때, 이를 처리하기 위해서입니다.🔹 이유일반적으로 HttpServletRequest 객체는 multipart/form-data 요청을 처리할 수 없습니다. 하지만 Spring이나 EgovFramework에서는 CommonsMultipartRes..
포스트맨 요청, 응답과 서버 반영 포스트맨 응답이 200이 찍혀도서버에 반영되는거랑은 별개 일 수 있다.
eclipse 구닥다리 요청 매개변수 분석 @RequestMapping  /update.do 요청에서 사용된 매개변수와 Postman 요청 작성 방법을 자세히 설명드리겠습니다.1. 매개변수 분석@ModelAttribute("memVo") MemVO memVoSpring MVC에서 요청 파라미터를 MemVO 객체에 바인딩합니다.클라이언트에서 보내는 폼 데이터(key-value 형태)가 MemVO 클래스의 필드와 매핑됩니다.@ModelAttribute("memVo")는 이 객체를 뷰로 전달할 때 사용되는 이름이 memVo임을 나타냅니다.클라이언트 서버 양방향으로 쓰인다.final HttpServletRequest request원시 HTTP 요청 객체를 가져옵니다.요청의 헤더, 파라미터, 세션 등의 정보를 직접 다룰 때 사용합니다.HttpServle..
동기와 비동기, 블로킹과 논블로킹 동기 Synchronous : 작업을 요청하는쪽과 작업을 처리하는 쪽이 서로를 인식하고 상태를 동기화 하는것비동기 Asynchronous : 작업을 요청하는쪽과 작업을 처리하는쪽이 서로 인식하지 않으며 상태 역시 동기화하지 않는것 관련용어로 블로킹과 논블로킹이 있다.작업을 요청하는 쪽에서 어떻게 동작하는지를 표현하는 용어이다. 블로킹 : 작업을 요청하는 쪽이 작업이 완료될 때까지 실행을 멈추고 대기하는 상태논블로킹 Non-blocking : 작업을 요청하는쪽이 작업 처리 완료를 대기하지 않고 우선 다른일을 진행하는 상태