이 글은 항해99 부트캠프를 진행하며 개인의 감정이 듬뿍 담긴 후기입니다. 참고하세요! 4일차... 첫 주차 프로젝트를 마치며 드디어 블로깅을 시작했다. 제목이 ' d+(숫자) ' 가 아닌 'd - (숫자)' 인 이유. 왜 날짜가 늘어나지 않고, 줄어드는거지? 끝나는 날만 기다리는 건가...? 'hello world' 의 세계로 들어오면서 (들어온게 맞나?ㅋㅋ) 혼자 공부해서 취업을 해야겠다는 생각을 했다. 그 이유는 프로그래머를 위한 다양한 좋은 영상들이 많이 있기에 또한 열정이 한참 끓어 올랐기에 혼자서 공부하여 '충분히' 취업을 할 수 있을 줄 알았기 때문이다. 하지만! 현실은 다르다. 필자는 시간관리를 못하고 하루하루를 흘러가는대로 허투로 보내곤 하는 사람이다... (나이를 먹어도 정신을 못차리니..
영속 계층의 작업 순서 - 테이블의 column 구조를 반영하는 VO(VALUE OBJECT) 클래스의 생성 - MyBatis 의 Mapper 인터페이스의 작성/XML 처리 - 작성한 Mapper 인터페이스의 테스트 ## VO 클래스의 작성 VO 클래스는 테이블 설계를 기준으로 작성하면 된다. BoardVO @Data public class BoardVO { private Long bno; private String title, content, wirter; private Date regdate, updateDate; } BoardVO 클래스는 Lombok의 @Data 어노테이션을 사용하여 생성자, getter/setter, toString() 만들어낸다. ## Mapper 인터페이스, Mapper XM..
- Thread 스레드의 우선 순위 - 우선 순위가 높은 스레드는 실행의 우선권을 갖는다. (현재 실행중인 스레드 보다 우선순위가 높은 스레드가 들어오면 우선순위가 높은 스레드에게 더 많은 실행시간 할당됨) - setPriority() 메소드 : 우선 순위 부여 형식 : 스레드 객체명.setPriority(우선순위값); ex) t.setPriority(10); - 우선 순위를 지정하기 위한 자바의 우선순위 상수 static final int MAX_PRIORITY // 우선순위 10 static final int NORM_PRIORITY// 우선순위 5 static final int MIN_PRIORITY // 우선순위 1 스레드 - Runnable 인터페이스 활용 - 스레드 클래스 생성(Runnable..
스레드를 생성하고 활용하는 방법은 2가지가 있다. - Thread 객체 상속받기 - Runnable 인터페이스 상속받기 ## Thread 객체를 상속받기 : 스레드로 사용할 클래스를 정의 한 후 Thread 클래스를 상속받는다. Thread 클래스 객체를 생성하여 실행하기 위해서는 run() 메소드를 오버라이딩 해주어야 한다. class NewT extends Thread{ @override public void run(){ 실행! } } public class Example { public static void main(String[] args) NewT t = new NewT(); t.start(); } } 스레드 객체인 t를 실행하기 위해서는 start() 메소드로 실행시켜주면 된다. start()..
리스너와 내부익명클래스 리스너 란? : 이벤트를 처리하는 메소드들이 정의된 인터페이스 개발자가 이벤트 리스너를 Implement 하여 클래스를 정의한 후 객체로 생성하여 이벤트가 발생하는 뷰에 설정해 놓으면 이벤트가 발생할 때 등록된 리스너 안의 콜백 메소드가 시스템에 의해 자동으로 호출됨 (하나의 리스너는 하나의 콜백 메소드를 갖는다.) btn1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { } }); 위의 콜백 메서드는 onClick 메서드 클릭이 될 때 마다 onClick 메서드가 실행된다. - 리스너의 원형과 익명 내부 클래스 == 리스너의 원형 public class MainAct..
thorws (예외전파) 그냥 throws라고 하고 예외를 호출한 곳으로 다시 던진다고 표현을 했는데 예외를 전파한다는 표현으로 학교에서는 수업을 진행한다. class ExceptoinAAA extends Exception{}; class ExceptoinBBB extends Exception{}; public class ExceptPropagation { public static void a() throws ExceptoinAAA,ExceptoinBBB { System.out.println("a메소드 시작"); b(); throw new ExceptoinAAA(); } public static void b() throws ExceptoinBBB{ System.out.println("b메소드 시작"); ..
- JDBC 테스트 코드 작성 : 데이터베이스가 제대로 연결이 되었는지 확인할 수 있는 테스트 코드를 작성한다. 테스트 코드는 Java와 JDBC 드라이버만으로 구현해서 먼저 테스트한다. 정상적으로 연결이 된다면 Connection 객체가 출력된다. @Log4j public class JDBCTests { static { try { Class.forName("oracle.jdbc.driver.OracleDriver"); } catch (Exception e) { e.printStackTrace(); } } @Test public void testConnection() { try (Connection con = DriverManager.getConnection( "jdbc:oracle:thin:@local..
롬복은 컴파일 시 자주 사용되는 코드를 작성하는 기능들을 완성해주는 라이브러리 - @setter : setter 메서드를 만들어주는 역할을 한다. 3가지 속성 value : 접근 제한 속성을 의미 onMethod : setter 메서드의 생성 시 메서드에 추가할 어노테이션을 지정 onParam : setter 메서드의 파리미터에 어노테이션을 사용하는 경우 적용한다. - @Data : @ToString, @EqualsAndHashCode, @Getter/Setter, @RequestArgsConstructor를 모두 결합한 형태로 한 번에 자주 사용되는 모든 메서드를 생성한다. -@Log4j : 로그 객체를 생성한다. -@Component : 어노테이션이 설정된 클래스가 스프링에서 객체로 만들어서 관리하는..