일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 쿠팡메크로
- 쿠팡매크로
- 반려견 사료등급
- 샤로수길 데이트
- 강아지 열사병
- 강아지 유기농 사료
- 반려견
- 동인천 맛집
- 자동화봇
- 반려견 더위
- 강아지 더위
- 홀리스틱 유기농
- 강아지 유기농
- 닥스훈트
- 국비지원 예습
- 반려견 열사병
- 강아지 홀리스틱
- 부산 맛집
- 강아지
- 반려견 종류
- 신포동 맛집
- 반려견 유기농
- 서울대입구 맛집
- 티켓팅메크로
- 반려견 유기농 사료
- 샤로수길 맛집
- 강아지종류
- 티켓팅매크로
- 강아지 종류
- 반려견 홀리스틱
- Today
- Total
목록코딩일기 (99)
심심한잉여의 잡동사니
회사에서 아이프레임을 통해 프로젝트를 보여주고 있는데 로우코드 기반으로 만든 화면은 다른 탭 눌렀다가 눌러도 문제 없이 그대로를 유지하는데 자바로 만든 화면은 다른탭을 눌렀다가 다시 해당 탭을 들어가면 다시 고쳐져서 조회하던 내용이 사라졌기 때문에 이에 대해 사수분께 여쭤보니 SSR과 CSR의 차이가 있었다고 했다. 필자에게는 생소한 용어였기 때문에 검색을 하고 정리를 해본다. SSR이란 Server Side Rendering의 약자 말 그대로 서버쪽에서 렌더링 준비를 끝마친 클라이언트에 전달하는 방식이다. 위 그림은 SSR 단계를 나타내는 그림이다. 1. USER가 웹 사이트에 요청을 보낸다. 2. 서버는 즉시 렌더링이 가능한 HTML파일을 생성한다.(리소스 체크, 컴파일 후 완성된 HTML 컨텐츠로 ..
브라우저(크롬)에 URL을 입력하면 어떤일이 벌어지나요? 최근에 많이 질문받는 면접 질문이라고 생각되어 포스팅을 한번 해보려고 한다. "브라우저에 google.com을 입력하면 어떤일이 벌어지나요?"와 같은 질문을 받을 수도 있다. 간단하게 정리를 해보면 1. 브라우저 주소창에 google.com을 입력 2. 브라우저가 google.com의 IP주소를 찾기 위해 캐시에서 DNS 기록을 확인 3. 만약 요청한 URL이 캐시에 없다면 ISP의 DNS 서버가 DNS 쿼리로 google.com을 호스팅하는 서버의 IP주소를 찾는다. 4. 브라우저가 해당 서버와 TCP 연결을 시작한다. 5. 브라우저가 웹 서버에 HTTP 요청을 보낸다. 6. 서버가 요청을 처리하고 응답을 보낸다. 7. 서버가 HTTP 응답을 보..
.scrollLock { overflow: hidden; touch-action: none; } 해당 CSS를 추가 하여 스크롤 혹은 터치를 막는 클래스를 만든다. $('body').toggleClass('scrollLock') 제이쿼리를 통해 toggleClass를 활용 할 것이다. 해당 메소드를 사용하게 되면 클래스가 있다면 없애고 없다면 만드는 유용한 기능이다. 이를 통해 scrollLock 클래스를 제어하면 된다. 필자는 body에 해당 toggle클래스를 적용하여 본문의 스크롤을 잠가 팝업 시 밖에 있는 화면만 스크롤 안되게 막았었다.
//특수문자가 속해있는지 확인하는 정규식 let reg = /[\{\}\[\]\/?.,;:|\)*~`!^\-_+@\#$%&\\\=\(\'\"]/g; //영어,한글,숫자를 제외한 다른 문자가 들어있는지 확인하는 정규식 let reg2 = /[^\w\sㄱ-힣()0-9 ]/g; 특수문자가 들어간 문자열을 체크하는 정규식 if(reg.test(obj)){ console.log('특수문자가 들어있습니다.'); } if(reg2.test(obj)){ console.log('특수문자가 들어있습니다.'); } 위 예시와 같이 사용 가능
let reg = /[^0-9]/gi 숫자가 아닌 경우 true 반환 if(reg.test(obj)){ console.log('숫자가 아닙니다.') } 숫자인 경우 true반환을 원하면 ^를 지우면 된다.
스프링부트와 마이바티스, Mysql을 사용했습니다. // 서비스 로직(자바) // 프로시저 호출 repo.callP(Param) { call callP( #{param1, mode=IN, jdbcType=VARCHAR} #{param2, mode=IN, jdbcType=VARCHAR} #{param3, mode=OUT, jdbcType=VARCHAR} ) } 위 코드에서 resultType을 따로 설정하여 별도로 받으려고 했으나 빈(Null)값으로 받아져서 당황했었다. 따라서 위와 같이 서비스로직에서 프로시저를 호출하게 되면 OUT으로 하고싶은 param3는 호출을 위한 인자객체인 Param에 대해 반환값이 들어가게 되고 저기서 값을 사용하고 싶으면 별도로 리턴값을 사용하는 것이 아닌 Param객체를 다..
XML을 사용하다보면 비교연산을 하려고 사용한 꺽쇠로 인해 흐틀어지는 경우가 발생하여 마이바티스가 이상하게 작동하는 경우가 있다. 이 경우 해결하는 방법으로는 CDATA를 사용하는 방법이 있다. Character Data의 약자이며 문자 데이터를 말하는 것이다. 그런데 이 용어를 좀 더 정확하게 말하면 (Unparsed) Charater Data 즉 파싱하지 않는 문자 데이터를 뜻한다. XML에서 쿼리 사용 시 아래와 같이 작성한다면 SELECT EMP_NAME FROM EMP WHERE SALARY > 25000000 꺽쇠로 인해 작동을 안하는 경우가 발생할 수 있다. 이러한 경우에는 SELECT EMP_NAME FROM EMP WHERE 25000000 ]]> 위와 같이 하거나 아래와 같이 하는 방법..
마이바티스를 사용한 프로젝트에서 mapper.xml을 작성하다보면 보통은 샵(#{})을 통해 작성하게 되나 필요에 의해 달러(${})를 사용하기도 한다. 이 둘은 용도가 전혀 다르기 때문에 명확히 구분해서 사용하는 것이 좋다. 샵(#{}) SELECT name AS name FROM user WHERE test = #{test} 샵을 사용한 경우 위 코드와 같은 예시로 작성을 주로하게 되며 Mybatis에서 위와 같은 샵(#{})을 사용한 쿼리문을 실행하게 되면서 PreparedStatement를 생성하게 되는데 이를 이용하게 되는데 #{}을 이용한 부분은 파싱되어 파싱된 쿼리문을 재활용하여 효율적으로 사용할 수 있게 된다. 그리고 변수에 작은 따옴표( ' ) 가 자동으로 붙어 쿼리가 수행되기 때문에 '..