본문 바로가기

프로그래밍49

<프로그래밍> 주석 1. java 같은 경우는 보통 javadoc의 규칙에 따라서 주석을 다는 것이 가장 좋다 커스터마이징을 할 수 있고 이클립스 단축키 : shift+alt + j 로 하면 되고. 커서 위치에 따라서 나타나는 주석이 다르다 메서드 주석 달려면 메서드 안에 커서 넣고 단축키 // 주석을 javadoc 규칙에 안 따르는 것은 비추천이다. 배운 사람이라면 javadoc을 하는게 더 실용적이다. code templates 옵션 사용해서 작성자:홍길동 // 같이 자기 이름 미리 명시해두는 것도 편하다. tags, date 옵션 넣기 추천 user 넣으면 내 컴퓨터 사용자 계정명이 들어간다. 새로운 프로젝트에 가면 code template 먼저 세팅을 하자. 해당 시스템에 맞게. ===== 2022. 12. 6.
<메모> jeus 로컬에서 jeus 돌릴 때 시스템이 2개 이상을 동시에 켤때 충돌이 나는데 // 디버그 옵션 port가 동일하면 그런 케이스가 있다. JeusMain.xml 파일에 address 속성을 바꿔주면 해결 ==== 제우스 로그에서 _ 언더바, . 같은 특수문자은 _5f로 치환된다. 5f 라는 키워드가 붙는데. 예를 들어 test_5f123_5ftype_5fjsp 문제 파일은 test_123_type.jsp 파일이다. 5f 붙어서 파일명을 알아보기 어려운데. 꼭 기억해야한다. 그래서 에러난 위치를 알 수 있다. 5float를 의미하나?.... ==== 2022. 12. 6.
<메모> 코드리뷰 1. 살면서 처음으로 코드리뷰를 해봤는데. 코드리뷰하니까. 정말 좋다. ============== 다른 개발자분들에게 피드백 받을 수 있어서 좋다. ======== 개선할 점도 들을 수 있어서 좋았다. ============= 코드리뷰할 수록 실력 좋아진다. =============== 코드리뷰 하는 회사에서 일하자. =============== 3년 이상 일하면서 프리랜서로만 일하기도 했고 // 실력 좋은 개발자들이랑 일해본 적이 없었다. 코드리뷰를 하는 환경도 아니었다. ============= 2022. 12. 5.
<메모> jqGrid jqGrid 1. formatter 라는 속성이 중요하다. cell 안에 html tag, 데이터를 가공할 수 있다. // 버튼을 넣을 수도 있고, 이미지를 넣을 수도 있고 데이터 변환도 가능. 변수는 보통 3가지. cellValues, option, rowObject 필요한 것만 매개변수에 담아서 사용하면 된다. ==== 간단한 거면 해당 colModel에 익명함수 방식으로 넣는 것도 편하다. === 길면. 별도로 정의를 해서 호출해서 사용하는 것 추천 ===== 2022. 12. 5.
<메모> 개발자 도구 개발자도구에서는 브레이크 포인트를 아주 쉽게 걸 수 있는데 줄번호 클릭하면 브레이크포인트 해당 위치에 고정된다 굳이 debugger 라고 소스 바꿀 필요 없다. source 탭에서 브레이크 포인트를 걸 수 있다. //요소는 안된다. === 개발자도구에 source 탭 하단 overrides 라는 엄청난 기능이 있는데 로컬로 소스 다운 받은 다음에 실시간으로 js 수정 해서 반영을 해볼 수 있다. 뷰 단 소스를 수정해서 테스트 해볼 수 있다. 운영에서도 실시간 수정 및 테스트도 가능해진다. ==== 2022. 12. 2.
<메모> 디버깅 디버깅할 때 브레이크 포인트, 디버거가 원하는 위치에서 안 잡히는 경우가 많은데 뷰단이든 백엔드든 동일하다. 다른 곳을 탈 확률이 90%이상이다. 따라서 로직을 점검해서. 어디서 새나가는 지 확인을 해야한다. === 컴퓨터는 틀리지 않는다 내 로직에 문제가 있을 확률이 높다. === 개발 시 브레이크포인트 못쓰는 시스템은 개발하기 정말 어려워진다. aa가 개판인 곳은 이클립스도 안쓰는 곳이 있다 ide가 완전 개판이다. ==== 2022. 12. 2.
<메모> 세션 쿠키를 활용해서 로그인 정보를 컨트롤 할 수도 있고. 공개하면 안되는 정보면 세션에 담아도 된다. ==== 세션에 담아서 쓰는게 db에서 호출하는 것보다는 빠르다. 따라서 세션 객체를 잘 활용할 필요가 있다. === 2022. 12. 2.
[메모] ajax dataType 옵션 : text, html, xml, json, jsonp, and script. dataType을 다양하게 할 수 있다. //그래서 다용도로 활용이 가능하다. 기본값은 mime 타입을 보고 동적으로 결정된다. 데이터타입에 따라서 리턴값을 처리하는 방식이 달라진다. html type을 쓰면 특정 부분의 html을 가져올 수 있다. 교체가능. 보통 배열타입으로 데이터가 넘어오기 때문에 json을 쓰는 경우가 대부분이다. json 타입이 데이터에 처리나 가공이 수월해서 많이 쓰인다. ======= 2022. 12. 1.
<메모> json {"test" : "testval", ...... json은 위와 같은 구조이다. json은 점/ 브라켓 방식으로 데이터에 접근할 수 있다. json 고유의 문법. ==== js에서. ajax 통신할 때 dataType을 json으로 하는 경우가 많다. 꼭 dataType 명시해주자. 데이터타입에 따라 접근 문밥이 달라지니. json 문법을 써야 꺼낼 수 있다. ==== ret.test; 위와 같이 접근한다. 꼭 기억하자. js, jquery 문법쓰면 데이터를 꺼낼 수 없다. === ret.resultMap['test'].id 샘플. json내부에 배열이 있을 경우. ==== 2022. 11. 30.
<메모> java java 는 if문 안에 선언한 변수는 if 밖에서 사용 불가. 따라서 밖에서 쓰고 싶으면 if 밖 / 위에 미리 선언을 해야한다. 그래야 로직 중복을 피할 수 있다. ==== equals 사용할 때 문자열을 앞에 두자. ex. "Y".equals() null 장애 방지. ===== nvl = null value 의 약어이다. null처리 함수이다. 보통 StringUtil.NVL( , ""); 로 String 널처리를 해준다 nvl은 광범위하게 쓰이는 키워드 이므로 암기. 대부분의 언어에 메서드로 정의가 되어 있을 것이다. ===== 2022. 11. 30.
<메모> ibatis + 작성중 ===== 언더바(스네이크) 케이스로 명명을 하면 카멜케이스로 자동 변환되어서 리턴된다. select test_id from dual; testId 로 리턴이 된다. 특이하다... ibatis에서는 꼭 as 별명을 스네이크 케이스로 붙여줘야 한다. 컬럼명의 스네이크 케이스가 아니기 때문에 꼭 sql에는 스네이크 케이스로 alias를 해준다. ==== 2022. 11. 24.
db - 방문횟수, 인입횟수 등은 insert로 구현 1. 사용이 많이 되는 테이블에 방문횟수 같은 컬럼을 넣어서 update를 치면 경합이 많이 발생해서. 전반적으로 조회 성능이 안 좋아진다. 2. 테이블을 간단하게 따로 만들어서. insert를 해서 sum 같은 집계함수를 써서 카운트를 해야한다. 3. lock, blocking 등 이 걸릴 수도 있고. 전반적으로 문제가 생긴다. 4. 통계 기능은 웬만하면 insert로 데이터 모아서. 집계함수를 써야한다. 5. 데이터가 너무 많으면 배치 돌려서 과거 데이터 삭제하고. 6. 비 통계 테이블에 통계 컬럼을 넣으면 안된다. ==== 또 다른 의견 :: select 가 몰리는 것은 문제가 되지 않는다. update가 몰리는 것은 lock, 경합 같은 문제가 발생한다. 상식적으로 특정 페이지에 동접자가 몰려도 .. 2022. 11. 23.