썸네일 [JAVA] 자바 super 키워드와 super() 메서드 안녕하세요 로로봉입니다 : ) 오늘은 JAVA에서 super 키워드와 super() 메서드에 대해 알아보도록 하겠습니다. this 키워드와 this() 메서드는 클래스 자신의 내부 구성 요소를 호출하는 문법입니다. 자기 객체를 가리키는 참조 변수명으로 생략했을 때는 컴파일러가 자동으로 추가해서 처리합니다. this는 자신의 객체, this() 메서드는 자신의 생성자를 의미합니다. 반대로 super는 부모의 객체, super()는 부모의 생성자를 의미합니다. super와 super() 메서드는 부모 클래스에 대한 것이기 때문에 상속 관계에서만 사용할 수 있습니다. 1) 부모의 객체를 가리키는 super 키워드 super 키워드는 부모의 객체를 가리키는 것으로 필드명의 중복 또는 메서드 오버라이딩으로 가려진..
썸네일 [웹 개발] Eclipse REST API 구현 - Swagger 3.0 설정 안녕하세요 로로봉입니다 : ) 오늘은 개발중인 REST API에 대한 스펙을 명세할 수 있는 Swagger에 대해 알아보겠습니다. Swagger는 아래와 같은 기능을 하는 정말 유용한 라이브러리입니다. REST API에 대한 설명을 다 기제하여 표시할 수 있고, 실제 파라미터를 넣어 호출 테스트까지 할 수 있어서 최종 정리 문서라고 봐도 무방한 것 같습니다. Swagger란? Open Api Specification(OAS)를 위한 프레임워크이다. API들이 가지고 있는 스펙(spec)을 명세, 관리할 수 있는 프로젝트/문서 API 사용 방법을 사용자에게 알려주는 문서 Springboot에서 Swagger를 사용하면, 컨트롤러에 명시된 어노테이션을 해석하여 API문서를 자동으로 만들어준다. 참고로 Swa..
썸네일 [웹 개발] Eclipse REST API 구현 - UPDATE, DELETE문 처리 안녕하세요 로로봉입니다 : ) 오늘은 저번 포스팅에 이어 UPDATE와 DELETE 쿼리문을 처리하는 방법을 알아보도록 하겠습니다. INSERT를 한번 해보았기 때문에 금방 이해하실 수 있으실 것 같습니다. 1) UPDATE ① PeopleSql.groovy repository 패키지에 PeopleSql.groovy 파일을 열어 Update 쿼리를 추가해 줍니다. public static final String UPDATE = """ UPDATE people_tbl SET p_name = :name, p_age = :age, p_job = :job WHERE 1=1 """; public static final String SEQ_CONDITION = """ AND p_seq = :seq """; ② Pe..
썸네일 [웹 개발] Eclipse REST API 구현 - INSERT 문 처리 안녕하세요 로로봉입니다 : ) 지난번엔 SELECT 조건으로 조회하는 것을 알아보았습니다. 이번엔 REST API에서 INSERT 쿼리를 처리하는 방법을 알아보도록 하겠습니다. 우선 알아야 할점은 REST API는 HTTP나 HTTPS 프로토콜을 기반으로 한 통신방법입니다. 따라서 호출 방법이 GET 방식과 POST 방식으로 나눌 수 있습니다. GET 방식은 파라미터가 URL에 모두 노출되는 방식을 말하고, POST 방식은 패킷 내부에 숨겨져 URL에 노출되지 않고 전달하는 방식을 말합니다. 이처럼 SELECT 같은 경우에는 GET 방식으로도 큰 문제가 안되겠지만, INSERT, UPDATE, DELETE 같은 경우는 일반적으로 POST 방식을 사용합니다. 여짓껏 GET 방식은 계속 사용해왔기 때문에 P..
썸네일 [웹 개발] Eclipse REST API 구현 - SELECT문 조건 조회 안녕하세요 로로봉입니다 : ) 오늘은 호출할때 파라미터를 전달 받아서 Select 문에 조건으로 조회를 해보도록 하겠습니다. 저번 포스팅에서 기본 구조로 전체 리스트를 Select 해보았었습니다. 이어서 작업할텐데 별도의 클래스 추가 없이 소스부분만 추가해주면 간단히 구현할 수 있습니다. DB 테이블을 다시한번 확인해보겠습니다. people_tbl에는 3개의 데이터를 넣어놨고, p_name, p_age, p_job 이 3가지 필드가 있는 것을 확인했습니다. 조건문으로 이름과, 나이와, 직업 모두 전달 받도록 하고 전달되는 파라미터가 비어있더라도 오류가 나지 않게 처리해보겠습니다. 1) SQL 추가 repository 패키지 안에 있는 PeopleSql.groovy 파일을 열어줍니다. 기존에 작성했던 SE..
썸네일 [웹 개발] Eclipse REST API 구현 - JDBC 사용하여 MySQL 연동하기 안녕하세요 로로봉입니다 : ) 이번에는 JDBC를 사용하여 MySQL을 연동해보도록 하겠습니다. 처음 구성에서는 Mybatis 를 사용하려고 했는데, JDBC가 여러모로 장점이 많기에 Mybatis를 구성에서 제거하고 JDBC를 사용해보도록 하겠습니다. Spring JDBC는 MyBatis와 비교해서 아래와 같이 학습 비용은 낮고 생산성은 높은 장점이 있습니다. - 초기 설정이 단순합니다. - 쿼리 결과를 변환하는 구성요소(RowMapper)가 인터페이스로 정의되어 Java 컴파일러의 장점을 활용할 수 있습니다. - SQL 쿼리를 Groovy 파일 안에 선언하면 Java 컴파일러의 장점을 활용할 수 있습니다. - 간단한 ORMapping 기능을 제공합니다. - Collection 파라미터를 더 편하게 사..
썸네일 [웹 개발] Eclipse REST API 구현 - Service 생성 안녕하세요 로로봉입니다 : ) 오늘은 기존에 /Info 페이지였던 InfoController를 Service로 만들어서 사용해 보도록 하겠습니다. 우선 info 패키지에 우측 마우스를 클릭하여 New - Class를 선택해줍니다. 클래스 이름은 InfoService로 작성 후 Finish 버튼을 눌러줍니다. InfoService 클래스를 아래와 같이 작성해줍니다. @Service public class InfoService { public Project getProjectInfo() { Project project = new Project(); project.projectName = "restapi"; project.author = "rorobong"; project.createDate = new Dat..
썸네일 [JAVA] 자바 메서드 오버라이딩 안녕하세요 로로봉입니다 : ) 오늘은 메서드 오버라이딩에 대해 알아보도록 하겠습니다. 1) 메서드 오버라이딩의 개념과 동작 메서드 오버라이딩은 부모 클래스에게 상속받은 메서드와 동일한 이름의 메서드를 재정의하는 것으로, 부모의 메서드를 자신이 만든 메서드로 덮어쓰는 개념입니다. 마치 우리가 동일한 위치에 동일한 파일을 저장하고자 할 때 덮어쓰기가 수행되는 것과 같은 원리입니다. 메서드 오버라이딩이 수행되기 위해서는 2가지 조건을 만족해야 합니다. - 부모 클래스의 메서드와 시그너처 및 리턴 타입이 동일해야 한다. - 부모 클래스의 메서드보다 접근 지정자의 범위가 같거나 넓어야 한다. 먼저 부모 클래스의 메서드와 시그너처(메서드명, 입력매개변수의 타입과 개수)뿐 아니라 리터 타입까지 완벽하게 일치해야 합니..
썸네일 [JAVA] 자바 객체의 타입 변환 안녕하세요 로로봉 입니다 : ) 오늘은 자바에서 객체의 타입 변환에 대해 알아보겠습니다. 기본 자료형을 사용할 때 다른 프로그램 언어와 마찬가지로 자바 프로그램은 등호(=)를 중심으로 항상 왼쪽과 오른쪽의 자료형이 일치해야 합니다. 만약 자료형이 서로 다를 경우에는 컴파일러가 자동으로 타입을 변환해주거나 개발자가 직접 타입을 변환해 주어야 합니다. 객체에서도 이러한 타입 변환이 일어납니다. 이것을 업캐스팅, 다운캐스팅이라고 합니다. 1) 객체의 업캐스팅과 다운캐스팅 기본 자료형에서 업캐스팅은 범위가 좁은 쪽에서 넓은 쪽으로 캐스팅하는 것을 말하고, 다운 캐스팅은 그 반대를 말합니다. 객체에서는 자식 클래스에서 부모 클래스 쪽으로 변환되는 것이 업캐스팅이고, 그 반대가 다운 캐스팅입니다. 객체는 항상 업캐..
썸네일 [JAVA] 자바 클래스 상속에 대해 안녕하세요 로로봉입니다 : ) 오늘은 자바에서 클래스 상속에 대해 알아보도록 하겠습니다. 클래스의 상속은 부모 클래스의 멤버를 내려받아 자식 클래스 내부에 포함시키는 것을 말합니다. 1) 상속의 개념 상속을 이해하기 위해 예를 들어보겠습니다. 아래와 같이 '어린이'와 '어른' 클래스가 있다고 가정합니다. '어린이'클래스에는 '이름', '나이', '키', '학년' 4가지 필드와 '먹기()', '잠자기()', '공부하기()'라는 메서드가 있다고 가정하고, '어른'클래스에는 '이름', '나이', '키', '직업' 4가지 필드와 '먹기()', '잠자기()', '일하기()'라는 메서드가 있다고 가정합니다. 사람이라면 누구나 이름과 나이, 키가 있고, 먹고 자야하므로 두 클래스 모두 이름 필드와 나이 필드 키 필드..
썸네일 [JAVA] 자바 제어자 (접근 지정자, static 제어자) 안녕하세요 로로봉입니다 : ) 오늘은 자바의 제어자 중 접근 지정자와 static에 대해 알아보겠습니다. 접근 지정자는 클래스 자체나 클래스의 내부 구성 요소 앞에 위치해서 접근 범위를 지정하는 제어자 입니다. 한편 static 제어자는 객체를 생성하지 않아도 클래스의 내부 구성 요소를 사용할 수 있도록 하는 제어자로 메모리에 어떻게 저장되는지 개념적으로 알아보도록 하겠습니다. 1) 접근 지정자 자바 제어자는 클래스, 필드, 메서드, 생성자 등에게 어떤 특징을 부여하는 문법 요소입니다. 접근 지정자는 자바 제어자의 한 종류로 위에서 간단히 설명했듯이 클래스, 멤버, 생성자 앞에 위치하고 사용 범위를 정의하는 역할을 합니다. 패키지를 학습할 때 다른 패키지에서 클래스를 사용할 수 있도록 public을 사용..
썸네일 [JAVA] 자바 클래스 외부 구성 요소 - 외부 클래스 안녕하세요 로로봉입니다 : ) 자바에서 클래스 외부 구성 요소 중 마지막으로 외부 클래스에 대해 알아보도록 하겠습니다. 외부 클래스는 public 클래스의 외부에 추가로 정의한 클래스를 말합니다. 1개의 자바 소스 파일에는 최대 1개의 public 클래스만 존재할 수 있고, 그 클래스명은 파일명과 일치해야 합니다. 소스 파일 안에서 public 클래스를 제외한 모든 클래스는 외부 클래스입니다. public 클래스가 아니면 다른 패키지에서 임포트할 수 없으므로 외부 클래스는 같은 패키지 안에서만 사용할 수 있습니다. [BCD.java 파일] package abc.bcd; class ABC {// 외부 클래스는 다른 패키지에서 임포트가 불가능. ... } public class BCD {// public 클..
반응형