추상화란 어떤 것들의 공통적인 성격을 뽑아내어 이를 따로 분리해내는 작업이다.자바가 추상화를 위해 제공하는 가장유용한 도구는 인터페이스이다. 인터페이스는 자신을 구현한 클래스에 대한구체적인 정보는 모두 감춰버린다. 인터페이스는 어떤 일을 하겠다는 기능만 정의해놓은 것이다.이말은 인터페이스는 "어떤 기능을 하겠다." 하는 구현체가 없다구현은 인터페이스를 구현할 클래스들 안에서 해야한다. 아래처럼 인터페이스를 정의하자.DB커넥션을 가져오는 메소드 이름을 makeConnection()이라고 정했다. 위 인터페이스를 사용하는UserDao 는 ConnectionMaker 인터페이스 타입의오브젝트라면 어떤 클래스로 만들어졌든지makeConnection() 메소드를 호출하면 Connection타입의오브젝트를 만들어서..
이번 포스팅에서는 StringBuilder와 StringBuffer의 차이에 대해 알아보자. StringBuilder와 StringBuffer의 차이는 대표적인 면접 단골 질문이기 때문에 면접 준비를 해봤던 사람이라면 누구나 한번쯤 들어봤을거라 생각한다. StringBuffer, StringBuilder 클래스는 String 클래스와는 다르게 값이 변한다. 예를 들어 String aaa = ""; 선언을 하고 aaa 에 반복문을 이용해 aaa += 1 과 같이 값을 계속 넣어준다면 aaa 는 1,2,3,4,5. . . 값을 계속 해서 가지게 된다. aaa 가 4에서 5가 됐을때도 4라는 값을 계속 가지고 있기 때문에 메모리 낭비가 된다. 반복문을 이용해 적은양의 데이터를 String에 저장한다면 큰 문제..
리팩토링은 기존의 코드를 외부의 동작방식에는변화없이 내부 구조를 변경해서 재구성하는 작업 또는 기술을 말함.리팩토링을 하면 코드 내부의 설계가 개선되어코드를 이해하기 좋아지고 변화에 효율적으로 대응할 수 있다. 코드의 품질이 올라가고 유지보수가 용이해진다.ex) 중복코드를 없에는 작업 상속을 통한 확장추상메소드 사용하기추상클래스로 만든 나의 UserDao 클래스를옆에 친구에게 준 후 이 친구도 내가 만든UserDao클래스를 사용할 수 있게 해줘야한다. 그럼 이친구는 나의 UserDao 클래스를 상속해서자기 마음대로 서브클래스를 만들어 사용하면 된다.서브클래스에서 내 UserDao클래스 안에 있는 추상메소드로 선언한 getConnection() 메소드를원하는 방식으로 구현해 사용할 수 있다. 이렇게 함으로..
UserDao-사용자 정보를 DB에 넣고 관리할 수 있는 DAO클래스이다.스프링을 공부할 정도라면 JSP로 게시판 한번쯤은 다 짜봤을것이다.Dao를 한번씩 다 사용해봤을거란 말이다.그럼 Dao에서 JDBC를 연결해보는 작업도 해봤을것이다. JDBC를 이용하는 작업의 일반적인 순서 -DB 연결을 위한 Connection 가져오기-SQL을 담은 PreparedStatement 생성-만들어진 PreparedStatement 실행-조회의 경우 SQL 쿼리의 실행 결과를 ResultSet으로 받아 저장한다.-작업중에 생성된 Connection, Statement, ResultSet 반환하기. ex)위 소스에서 2,3,4 line을 기억하자. main()을 이용한 테스트 만들어진 코드의 기능을 테스트 해볼때는 오브..
스프링은 자바를 기반으로 한 기술. 때문에 스프링은 자바의 객체지향 프로그래밍 기술을 가장 중요한 가치로 둔다. 스프링의 핵심 철학은 객체지향 프로그래밍이제공하는 폭넓은 혜택을 누릴수 있도록 하는것이다.그래서 스프링은 오브젝트에 가장 큰 관심을 둔다. 오브젝트의 기술적인 특징과 사용법을 넘어선 오브젝트의 설계에는다양한 목적을 위한 재활용 가능한 설계방법을 할 수 있도록 하는디자인 패턴, 구조가 깔끔해질수 있도록 개선하는 리팩토링오브젝트가 설계대로 동작하고 있는지 확인할 수 있는 단위 테스트등의 여러가지 응용 기술과 지식이 요구된다. DAO(Data Access Object) - DB를 사용해 데이터를 조회하거나조작하는 기능을 전담하도록 만든 오브젝트 자바빈 - 원래는 비주얼 툴에서 조작 가능한 컴포넌트를..
이 글 또한 okky에서 퍼왔다.위클리 베스트에서 많은 좋아요 를 받은 글 이다. 출처 : (https://okky.kr/article/531199) ================================== 안드로이드 개발자고. 몇년차 됐습니다.사실 누군가한테 조언이란걸 하긴 부끄럽습니다. 오키에 날아다니는 분들이 얼마나 많은데... 근데, 그냥 우연히 다른 커뮤니티에서 컴공인데 입사 어떻게 해요? 라는 말에 댓글 쓰다보니제가 삽질했던 경험들이 생각나서 울컥 하면서 댓글이 죽 길어졌고, 그 댓글들을 보다보니 2가지 생각이 떠올랐습니다. 1)오키에도 신입으로 입사하려는 분들 질문글 많이 올라오는데, 조금 도움되지 않을까?2)제가 개발 실력은 그저 그래도 삽질 경험은 좀 됩니다. 하하하!(그게 자랑이냐..
오랜만에 okky에 들어가 여러 글 들을 보는데위클리 베스트에 재밌어 보이는 글이 있어내 블로그로 퍼왔다. 글을 읽어보니 100%다 공감을할순 없었지만 맞는 부분도 있고 아예 다른 부분도 있는것 같다.취업을 준비하는 사람이라면 가볍게 읽어볼만 한것 같다. 아래는 본 글의 일부분 이다. 남은 부분은 아래원글 출처에가서 읽어보자. okky 출처 : (https://okky.kr/article/530222)원글 출처 : (https://www.facebook.com/totoro4/posts/10205654881487891) ===================================== 역시 공개글로 바꾸니 많은 피드백을 받고 있습니다.우선 아래 쓸때는 친구공개였기 때문에 말투가 거칠 수 있다는 점 양해 ..
자바에서 바탕화면이나 원하는 경로에 있는txt파일을 불러와 읽는 방법에대해 알아보자 먼저 간단하게 바탕화면에 테스트용 txt 파일을 만들자. 다음 아래와같이 소스를 작성한다. 어려운건 없으니 소스 해석은 생략하겠다. 이제 출력을 해보면 바탕화면에있는 txt 파일안의 내용을 불러와 콘솔창으로출력시켜준다. 하지만 바탕화면에 txt 파일을 불러와 DB에넣어야하는 상황이 올 수 있으므로한 단계 더 진행해보자.StringBuilder을 생성해준 후for문을 이용해 한 줄씩 읽어온txt 파일의 내용을 append를 이용해붙여준다. append로 붙은 내용을 출력하면 아래와 같이 한 줄로 쭉 붙여지게 된다. 파일을 줄바꿈을 적용해 출력하려면 append를 할때 \n을 붙여주자.