본문 바로가기
  • 문과생의 백엔드 개발자 성장기

전체 글199

3. Spring - Project 구성 프로젝트 구성 1. Dendencies Spring Boot DevTools : 개발에 편리한 기능들을 제공 Lombok : @annotation 사용으로 코드가 심플해짐 Mybatis Framework : db framework MySQL Driver Spring Web 2. MVC(Model,View,Controller) 구조 1) View/Controller jsp, html, ModelAndView 작업이 핵심 2) Model 데이터 Access, select 하는 작업 Mybatis가 DBCP를 이용해 싱글톤 적용 우선 웹 서버의 구조에서 각 클라이언트당 스레드의 개념으로 접근하게 된다. 위 그림을 살펴보면 3명의 유저가 동시에 서버에 접속을 해서 자원을 사용한다고 하였을 때 1) 일반적인 구조.. 2022. 10. 30.
2. Spring - Spring 개념 Framework https://spring.io/projects/spring-framework 어떠한 목적 달성을 위해 복잡하게 얽혀있는 문제를 해결하기 위한 구조며, 소프트웨어 개발에 있어 하나의 뼈대 역할을 한다. 웹 프레임워크란? '웹 서버'를 구현하기 위한 목적으로 만들어진 프레임워크이다. 웹 서버를 구현하기 위해 페이지 구현, DB 관리, 유저 인증, API 서버, 라우팅, 사이트맵, 세션 관리 등 여러 기능이 필요한데, 각 기능을 보유한 라이브러리들을 한 곳에 묶어 담은 것이 바로 프레임워크라고 이해할 수 있다. Spring Framework 스프링 프레임워크(Spring Framework)는 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서 간단히 스프링(Spring)이라고도 한다. .. 2022. 10. 30.
PHP Excel Read (PHPExcel) query("set names utf8");$filepath = "list.xlsx";$filetype = PHPExcel_IOFactory::identify($filepath);$reader = PHPExcel_IOFactory::createReader($filetype);$php_excel = $reader->load($filepath);$sheet = $php_excel->getSheet(0); // 첫번째 시트$maxRow = $sheet->getHighestRow(); // 마지막 라인$maxColumn = $sheet->getHighestColumn(); // 마지막 칼럼$target = "A"."1".":"."$maxColumn"... 2022. 8. 3.
1. Spring - setting 1. IDE 에서 Spring Project 실행 2. Location - Gradle 로 셋팅 후 나머지는 기본값 3. 다른건 기본값, Web 탭에서 Spring Web 설정 - Finish 4. Run As 1) Port 에러 - 이미사용중 (port 8080 was already in use) 뜬다면 프로젝트 내의 /demo1/src/main/resources/application.properties 경로로 이동후 포트변경 해준다. 2) 다시 Rus As 하면 정상적으로 작동 (콘솔이 이렇게 뜨면 정상적 작동중) 2022. 7. 8.
23. Java - 인터페이스, DAO, 인터페이스요소 인터페이스 모든 메서드가 추상 메서드로 선언됨 public abstract 모든 변수는 상수로 선언됨 public static final interface 인터페이스 이름{ public static final float pi = 3.14F; public void makeSomething(); } 인터페이스 정의와 구현 Calc.java public interface Calc { double PI = 3.14; int ERROR = -99999999; int add(int num1, int num2); int substract(int num1, int num2); int times(int num1, int num2); int divide(int num1, int num2); } Calculator.java.. 2022. 7. 7.
22. Java - 추상 클래스(abstract class) 구현, 템플릿 메서드 패턴 추상 클래스란? 구현 코드 없이 메서드의 선언만 있는 추상 메서드(abstract method)를 포함한 클래스 메서드 선언(declaration) : 반환타입, 메서드 이름, 매개변수로 구성 메서드 정의(definition) : 메서드 구현(implementation)과 동일한 의미 구현부(body) 를 가짐 ({ }) 예) int add(int x, int y); // 선언 int add(int x, int y){ } // 구현부가 있음, 추상 메서드 아님 abstract 예약어를 사용 추상 클래스는 new 할 수 없음 ( 인스턴스화 할 수 없음 ) 추상 클래스 구현하기 메서드에 구현 코드가 없으면 abstract 로 선언 abstract로 선언된 메서드를 가진 클래스는 abstract로 선언 모든 .. 2022. 7. 7.
21. Java - 상속, 다운 캐스팅과 instanceof IS-A 관계(is a relationship : inheritance) 일반적인(general) 개념과 구체적인(specific) 개념과의 관계 상위 클래스 : 하위 클래스보다 일반적인 개념 ( 예: Employee ) 하위 클래스 : 상위 클래스보다 구체적인 개념들이 더해짐 ( 예: Engineer, Manager...) 상속은 클래스간의 결합도가 높은 설계 상위 클래스의 수정이 많은 하위 클래스에 영향을 미칠 수 있음 계층구조가 복잡하거나 hierarchy가 높으면 좋지 않음 HAS-A 관계(composition) 클래스가 다른 클래스를 포함하는 관계 ( 변수로 선언 ) 코드 재사용의 가장 일반적인 방법 Student가 Subject를 포함하는 Library를 구현할 때 ArrayList 생성하여 .. 2022. 7. 6.
20. Java - 재정의(overriding), 다형성 메서드 재정의하기(overring) 하위 클래스에서 메서드 재정의 하기 오버라이딩(overriding) : 상위 클래스에 정의된 메서드의 구현 내용이 하위 클래스에서 구현할 내용과 맞지 않는 경우 하위 클래스에서 동일한 이름의 메서드를 재정의 할 수 있음 VIPCustomer 클래스의 calcPrice()는 할인율이 적용되지 않음 재정의 하여 구현해야 함 VIPCustomer.java @Override public int calcPrice(int price) { bonusPoint += price * bonusRatio; return price - (int)(price * salesRatio); } @overriding 애노테이션 (annotation) 애노테이션은 원래 주석이라는 의미 컴파일러에게 특별.. 2022. 7. 1.
19. Java - 상속 객체 간의 상속 클래스 상속 새로운 클래스를 정의 할 때 이미 구현된 클래스를 상속(inheritance) 받아서 속성이나 기능을 확장하여 클래스를 구현함 이미 구현된 클래스보다 더 구체적인 기능을 가진 클래스를 구현해야 할때 기존 클래스를 상속함 상속하는 클래스 : 상위 클래스, parent class, base class, super class 상속받는 클래스 : 하위 클래스, child class, derived class, subclass 상속의 문법 class B extends A{ } extends 키워드 뒤에는 단 하나의 클래스만 올 수 있음 자바는 단일 상속(single inheritance)만을 지원함 상속을 구현 하는 경우 상위 클래스는 하위 클래스 보다 더 일반적인 개념과 기능을 가짐.. 2022. 7. 1.