본문 바로가기

전체 글

(47)
예외 처리 가이드 - 임도형님 글 정리 예외 처리에 대해 알아보다 좋은 가이드라인이 있길래 정리를 해보았다. 보라색 가이드글을 먼저 읽고 빨강색 가이드글을 읽으면 이해가 잘된다. 예외 처리 가이드 - 모든 일에는 예외가 있다. - 모든 시스템에는 예측하지 못하는 상황이 있다. - 작업의 절차를 정의하는 프로그래밍에도 예외가 있을 수밖에 없다. 예외의 종류 - 예측 가능한 예외 예측 가능한만큼 예외처리 자체가 개발의 일부이다. ex) 로그인을 실패했다. DB에 레코드가 없다.  파일을 찾을 수 없다. - 예측 불가능한 예외 버그 아니면 시스템 환경에 기인한다. 실시간 처리는 불가능하다, 대신 개선되어야 한다. 예외 처리가 제대로 되지 않으면? - 문제가 발생해도 로그를 보지 않는다. - println(), break point에 의지한 디버깅..
[JAVA] 자바 배열 ArrayList 중복제거 정리 1.로직을 통한 중복 제거 contains()를 사용해, list를 for문 돌면서 arrayList에 포함되어있지 않는 데이터만 arrayList에 add 한다. contains() 함수는 대상 문자열에 특정 문자열이 포함되어 있는지 확인하는 함수다. 대/소문자를 구분한다. package test; import java.util.ArrayList; public class test { public static void main(String[] args) { String[] list = {"중복아님", "중복", "중복"}; ArrayList arrayList = new ArrayList(); for(String item : list){ if(!arrayList.contains(item)) arrayLis..
[MYSQL] InnoDB VS MyISAM InnoDB? MyISAM? MySQL의 스토리지 엔진으로 가장 많이 사용하는 InnoDB와 MyISAM의 차이를 정리하자. InnoDB 엔진은 트랜잭션 처리가 필요하고, 대용량의 데이터를 다루는 부분에서 효율적 MyISAM 엔진은 트랜잭션 처리가 필요 없고, Read only 기능이 많은 서비스일수록 효율적 정리하면, InnoDB는 데이터의 변화가 많은 서비스에 적합하다 MyISAM은 SELECT가 많은 서비스에 적합하다 용도에 따라 InnoDB나 MyISAM 스토리지 엔진을 결정하는데, InnoDB와 MyISAM 테이블을 같이 사용할 경우, 조인시 주의해야 한다! InnoDB -InnoDB 및 BDB 스토리지 엔진은 트랜젝션에 안전한 테이블을 제공하는 트랜잭션-세이프 스토리지 엔진이다. -InnoDB..
<%@ include file=" "%> <jsp:include page=" "/> 비교 JSP 화면에 사용하니 오류가 나타났다. 그래서 찾아본 오류가 나타난 이유! 동적인 방식을 사용하니 느려서 관련 URL을 못 불러온다... 결국 정적인 방식으로 변경! - 정적인 방식 : - 동적인 방식 : 평균 응답 시간을 보면 동적인 방식이 더 느리게 나타납니다. 즉, 성능을 더 빠르게 하려면 정적인 방식을 사용해야 합니다. 하지만 모든 화면을 이렇게 구성했다가는 잘 수행되던 화면에서 오류가 발생할 수 있습니다. 정적인 방식을 사용하면 메인 JSP에 추가되는 JSP가 포함됩니다. 이 때 추가되는 JSP와 메인 JSP에 동일한 이름의 변수가 있으면 심각한 오류가 발생할 수 있습니다. 그러므로 상황에 맞게 알맞은 include를 선택하여 사용하여야 합니다. 출처: https://12bme.tistory...
이클립스 .Project 관련 오류 이클립스에서 프로젝트를 시작하면서 복사. 붙여놓기 열심히 했더니 오류가 터졌다. 평상시에 사용하던 자바가 아니다. 단축기도 먹지를 않는다. 싸함이 느껴졌다. 내가 어디를 잘못했는가 거슬러올라가보았다. 그러다 찾았다. 이클립스에서의 .project 설정을 안해놨다. 다시 .project의 설정을 열심히 복사, 붙여넣기 설정을 완료하니 제대로 돌아간다. 오류도 뜨고 단축키도 잘 먹는다. .project - 이클립스 워크스페이스 상에서 프로젝트를 생성하게 되면 자동으로 생성되는 파일 - 프로젝트 파일 정보가 담겨있다 - "."으로 시작하니 Unix계열에서는 숨김파일 - 프로젝트가 웹 프로젝트인지 자바 프로젝트인지에 구별 가능함 - 자세한 도움말 : https://help.eclipse.org/2021-03/i..
Clean Code - 4주차 이번 주 목차 17장 냄새와 휴리스 부록A 동시성Ⅱ 부록B org.jfree.date.SerialDate 부록C 휴리스틱의 교차 참조 목록 17장 냄새와 휴리스틱 - 주석 C1: 부적절한 정보 : 일반적으로 작성자, 최종 수정일, SPR번호 만 주석으로 넣는다. C2: 쓸모없는 주석 : 오래된 주석, 엉뚱한 주석, 잘못된 주석은 아예 달지 말자. C3: 중복된 주석 : 구구절절 설명하는 주석 달지 말자. C4: 성의 없는 주석 : 간결하고 명료하게 주석 달자. C5: 주석 처리된 코드 : 주석으로 처리된 코드는 즉각 삭제하자! - 환경 E1: 여러 단계로 빌드해야 한다 : 한 명령으로 전체를 체크아웃해서 한 명령으로 빌드할 수 있어야 한다. E2: 여러 단계로 테스트해야 한다 : 모든 단위 테스트는 한 ..
Clean Code - (3 - 2)주차 이번 주 목차 13장 동시성 14장 점진적인 개선 15장 JUnit 들여다보기 16장 SerialDate 리팩터링 13장 동시성 - 동시성이 필요한 이유? 동시성은 결합을 없애는 전략이다. 즉 무엇과 언제를 분리한다. 다음은 동시성과 관련한 일반적인 미신과 오해다. 1. 동시성은 항상 성능을 높여준다. (때로 성능을 높여준다. 대기 시간이 아주 길어 여러 스레드가 프로세서를 공유할 수 있거나, 여러 프로세서가 동시에 처리할 독립적인 계산이 충분히 많은 경우에만 성능이 높아진다.) 2. 동시성을 구현해도 설계는 변하지 않는다. (단일 스레드 시스템과 다중 스레드 시스템은 설계가 다르다.) 3. 웹 또는 EJB 컨테이너 등을 사용하면 동시성을 이해할 필요가 없다. (실제로는 컨테이너가 어떻게 동작하는지, 동..
Clean Code - 3주차 이번 주 목차 9장 단위 테스트 10장 클래스 11장 시스템 12장 창발성 9장 단위 테스트 - TDD 법칙 세 가지 첫째 법칙 : 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다. 둘째 법칙 : 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다. 셋째 법칙 : 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다. - Clean Code 155 Page 인용 - 실제 코드와 맞먹을 정도로 방대한 테스트 코드는 심각한 관리 문제를 유발하기도 한다. 적당한 테스트 코드를 작성하자. 무리하지 말자. - 깨끗한 테스트 코드 유지하기 코드에 유연성, 유지보수성, 재사용성을 제공하는 버팀목이 바로 단위 테스트다. 단위 테스트란 테스트 코드이다? 유닛 테스트 (un..