본문 바로가기
728x90
반응형

개발자98

클린코드(Clean code) 6장 - 객체와 자료 구조 1. 자료구조 vs 객체 : 상황에 맞게 선택하기 절차적인 코드는 새로운 자료구조를 추가하기 어렵고 모든 함수를 다 고쳐야 한다. 자료구조를 사용하는 절차적 코드는 기본 자료구조를 변경하지 않으면서, 새로 함수를 추가하기 쉽다. 객체지향 코드는 기존 함수를 변경하지 않으면서 새로운 클래스를 추가하기 쉽다. 하지만 새로운 함수를 추가하려면, 모든 클래스를 고쳐야 한다. => 새로운 자료 타입 추가에 대한 유연성이 필요할때는 객체, 새로운 동작에 대한 유연성이 필요하면 자료구조와 절차적인 코드를 사용하자. 2. 디미터 법칙 클래스 C의 메서드 f는 이런 객체의 메서드만 호출해야 한다 -클래스 C -메서드 f 자신이 생성한 객체 -메서드 f 자신의 인수로 넘어온 객체 -클래스 C의 인스턴스 변수에 저장된 객체.. 2022. 9. 11. 12:06
클린코드(Clean code) 5장 - 형식 맞추기 1. 포맷팅의 중요성 : 가독성 가독성이 높은 글이 읽기 쉬운거랑 비슷함 들여쓰기 개판으로 꼬여있으면 읽기 넘 힘듦. 가독성 깔끔하게 작성하면 코드를 잘못 해석하여 버그를 발생할 위험도 낮출 수 있음 2. 너무 길게 작성하지 않기 를 지키기 솔직히 쉽지 않긴 한데... 연말정산이나 비례수수료 3천줄 넘어가는 코드도 천지 삐까리기는 한데.. 그래도 할 수 있으면 분리해서 짧게 짧게 끊어 가는것도 좋은 듯 파생개념의 경우 따로 소스를 분리한다든가 하는 노력을 기울여보자. 3. 밀접한 개념은 가까이에 두기 변수는 사용되는 위치에서 최대한 가까이 두기 (는 쉽지 않지만 그래도) 적절한 개행과 공백을 통해 개념을 구분하기 4. Java class declarations 1) static 변수 public > pr.. 2022. 9. 10. 21:53
클린코드(Clean code) 4장 - 주석 1. 주석을 최대한 쓰지 말자 개판 치고 주석으로 해명하는 것보다는 의미 있는 네이밍과 코드가 중요하다. 코드는 변화하는데, 주석이 쫓아가지 못하면 의미없는 컴파일도 안되는 텍스트 나부랭이 ..???????이게 가능한가 근데? 한번 쓰고 버릴 코드도 아니고 N년동안 기우고 굴려야 하는 sm입장에서는 히스토리 남기는 것도 너무 필요한 일인데... 인수인계할 때도 그렇지만, 과거의 나를 현재와 미래의 내가 믿지 못하는 사태가 너무 많음. 소스 커밋 체크인할 때 버전별 비교가 가능하지만 그거 가지고는 완전하지 않음 나는 그래서 날짜별로 상세하게 20220801 ~~ 기능 추가 / 요청자 ㅇㅇ부서 김뫄뫄 책임 이런식으로 어떻게든 기억날 수 있게 히스토리를 남기는 편. AA하면 BB하게 같은 기능 설명도 같이 하.. 2022. 9. 9. 23:30
클린코드(Clean code) 3장 - 함수 1. 객체지향 5대 원칙 다시보기 https://career-gogimandu.tistory.com/27 객체지향 설계에서 꼭 필요한 SOLID 5대원칙(SRP/OCP/LSP/ISP/DIP) SRP : Single Responsibility Principle, 단일책임 원칙 OCP : Open Closed Principle, 개방-폐쇄 원칙 LSP : Liskov Subtitution Principle, 리스코프 치환원칙 ISP : Interface Segregation Principle, 인터페이.. career-gogimandu.tistory.com 2. 함수 인수 너무 많이 때려박지 않기. 인수의 갯수는 많아야 2개 정도면 충분하다. 3개 이상은 너무 많아 .... 나 또 여기서 생각나는 코드 너무.. 2022. 9. 7. 21:50
클린코드(Clean code) 2장 - 좋은 이름 짓기 앞장 복습은 요기서 https://career-gogimandu.tistory.com/119 클린코드 1장 - 좋은 코드와 나쁜 코드 https://career-gogimandu.tistory.com/115 Java 힙 공간 에러 발생한 배치 성능개선후기 2022.08.19 개발된지 3년이 넘은 이후로 마지막 수정 2019년 초 나 입사 전 그 뒤 전혀 수정 없이 매달 루틴하게 잘쓰던.. career-gogimandu.tistory.com 1. 의미가 분명한 이름 짓기 : int a, String b 이런 이름 말고 itemcount, itemname 같이, 뭔 말하는지 알아먹기 쉽게 친구가 팀원이 저따위로 이름을 지어놨다고 개빡쳐한 거 본 기억 난다... 나여도 황당할듯 2. 반복문 돌릴 때 i, j,.. 2022. 9. 5. 07:50
클린코드(Clean code) 1장 - 좋은 코드와 나쁜 코드 https://career-gogimandu.tistory.com/115 Java 힙 공간 에러 발생한 배치 성능개선후기 2022.08.19 개발된지 3년이 넘은 이후로 마지막 수정 2019년 초 나 입사 전 그 뒤 전혀 수정 없이 매달 루틴하게 잘쓰던 자료 추출용 정기작업 배치에서 오류가 발생하였다. [문제점] 에러 로그를 보 career-gogimandu.tistory.com 이 사건과, 최근들어 제도 개정으로 수정, 아니 누더기 기우기를 진행 중인 말도 안되는 배치... 때문에 (거의 10년 전 java이전 시절 구체제 로직이 그대로 묻어있고, 가독성이 떨어져서 검증도 너무 하기 힘듦. 연초 제도개정때도 그 이전에도 저 그냥 이거 갈아엎고 새로 짜고 싶다고 수백번 말했는데 여러 사유로 받아들여지지 .. 2022. 9. 4. 21:16
Java 힙 공간 에러 발생한 배치 성능개선후기 2022.08.19 개발된지 3년이 넘은 이후로 마지막 수정 2019년 초 나 입사 전 그 뒤 전혀 수정 없이 매달 루틴하게 잘쓰던 자료 추출용 정기작업 배치에서 오류가 발생하였다. [문제점] 에러 로그를 보다보니 한가지 특이한 점, statistic에서 눈에 띄게 cpu time이 높은 걸 확인할 수 있었음 10분짜리 (워낙 대용량 자료를 인풋으로 하고있음) 작업이라 치면 8분이상은 cpu를 잡아먹음 그리고 로그에 찍힌 에러 발생한 원인도 java 힙 공간 에러 java.lang.outofmemory 어쩌고 저쩌고 로그가 가리키는 줄은 if (조건 a를 만족) -> b 로 출력한다 같은 단순한 라인이었지만 저 라인만이 문제가 아닐 것이라고 생각하여 코드 전체에 대한 분석을 팀원들과 함께 진행하였음 워낙.. 2022. 8. 22. 18:27
(미해결) 인텔리제이에서 jsp 파일 실행이 안돼요 / jsp 깨짐 / unable to ping server at localhost:1099 / jsp 500 에러 vue.js 프로젝트 수행 중 jsp로 테이블 정보 읽어오려다가 문제가 생김. 기존에 셋팅되어있던 eclipse - tomcat 8 쪽으로 워크스페이스 이동하여 실행해보니 되긴 되는데 인텔리제이에서 안 되는 이유 도무지 찾을 수가 없어서 일단 글로 남겨본다. intelliJ 에서 jsp 파일을 만들었는데 기존 사용중이던 톰캣10 서버 띄워서 실행이 안 되는 현상 발견함. 갑자기 jsp를 다운받으라 떠서 ?? 했고 실제로 index.html 메인페이지 실행해보니 jsp를 읽어들이는 상단메뉴 부분 다 깨짐. 톰캣9로 다운그레이드 해도 jsp를 읽어들이는 상단메뉴 부분 다 깨짐. jsp 파일경로를 크롬에 주소창 넣어보니 500 에러가 뜨는데, 원인 해결 못 함. 톰캣8로 다운그레이드 했더니 급기야 UNABLE.. 2022. 6. 26. 17:05
Vue.js 인라인 바인딩 inline binding 문자열 문자열 inline css 변경 문자열 객체 변경 스타일 지정할 때 css로 처리하는 방법은 여기 css없이도 처리할 수 있을까 그러면? 정답! 있다 1. style = ' ' 2022. 6. 11. 23:49
728x90
반응형