BackEnd
-
Java Server와 Client TCP/IP Socket 통신BackEnd/JAVA 2022. 10. 27. 13:17
Socket 통신 - 클라이언트와 서버가 지정된 포트를 이용해 통신한다. Client Socket - 최초 포트에 접속을 요청하는 소켓, 서버소켓으로 연결을 요청하고 데이터 전송을 한다. Server Socket - 서버에서만 사용하는 소켓, 클라이언트에서 연결요청이 오기까지 대기 상태를 유지한다. -Server.java import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.net.ServerSocket; import ja..
-
DAO, VO, Proc, 생성자, 오버라이딩, 오버로딩 용어 설명BackEnd/JAVA 2022. 6. 24. 17:36
DAO - 다른 jsp 파일들이 작동할수있게하는 메소드들이 들어가있다. VO = javabean + getter, setter - 프로젝트에 필요한 모든 변수가 저장되어있음 proc (프로시저) - 특정한 동작을 수행하고 처리하는곳 생성자 1. return 타입이 없다. 2. 메소드 이름이 class 이름과 동일하다. 3. 객체가 로딩될때 가장먼저 호출된다 오버라이딩 - 함수 재정의 오버로딩 - 같은 이름의 함수라도 매개변수의 타입이나 갯수가 다르면 다른 함수로 인식
-
Spring의 기본 개념 용어BackEnd/Spring 2022. 5. 3. 14:26
스프링 프레임워크(Spring Framework) Java/Kotlin 기반의 웹 프레임워크 풀 스택(Full-Stack) 웹 프레임워크 왜 Spring을 사용할까? 1. POJO(Plain Old Java Object) 기반의 구성 - 코드를 개발할 때, 개발자가 특정한 라이브러리나 컨테이너의 기술에 종속적이지 않음을 의미한다. 그렇기 때문에, Java코드를 이용해서 객체를 구성하는 방식 그대로 스프링에서 사용이 가능하다. 이로인해 자유롭게 객체 지향적 설계가 구현 가능하다. 그러므로 가장 일반적인 형태로 코드를 작성하고 실행할 수 있다. IOC(Inversion of Control) - 제어 역전 IOC는 DI와 DL에 의해 구현된다. - 스프링 컨테이너가 필요에 따라 개발자 대신 Bean들을 관리(..
-
HAVINGBackEnd/Database 2022. 4. 7. 12:59
HAVING은 WHERE와 비슷한 개념으로 조건을 제한하는 것이지만, 집계 함수에 대해서 제한적인 조건으로 사용하는 것이다. HAVING은 꼭 GROUP BY 다음에 나와야 한다. SELECT userID AS '사용자', SUM(price*amount) AS '총구매액' FROM buytbl GROUP BY userID HAVING SUM(price*amount) > 1000 -- 총 구매액이 적은 사용자부터 나타내려면 ORDER BY를 사용하면 된다. ORDER BY SUM(price*amount);
-
집계 함수BackEnd/Database 2022. 4. 7. 12:44
SUM() 함수 외에도 GROUP BY를 활용해 자주 사용되는 함수로 집계 함수(또는 집합함수)가 있다. -- 전체 구매자가 구매한 물품의 개수(amount)의 평균을 구해보자. USE sqldb; SELECT AVG(amount) AS '평균 구매 개수' FROM buytbl; 평균 구매 개수의 결과가 2.9167개가 나왔다. -- 각 사용자 별로 한 번 구매 시 물건의 평균 몇 개 구매했는지 평균을 내보자. use sqldb; SELECT userID, AVG(amount) AS '평균 구매 개수' FROM buytbl GROUP BY userID; -- usertbl의 height에서 usertbl에 가장 큰키 또는 가장 작은키를 가진 데이터를 name, height를 출력하기 -- 이런 경우에는 ..
-
GROUP BYBackEnd/Database 2022. 4. 7. 12:03
이 절은 그룹을 묶어주는 역할을 한다. -- sqldb에서 구매한 buytbl에서 userID가 구매한 물품의 개수(amount)를 보려면 다음과 같이 하면 된다 USE sqldb; SELECT userID, amount FROM buytbl ORDER BY userID; -- userID 별로 GROUP BY로 묶어준 후에 SUM() 함수로 구매 개수(amount)를 합치면 된다. -- BBK, EJW, KBS라는 중복된 userID를 합쳐서 출력해준다. USE sqldb; SELECT userID, SUM(amount) FROM buytbl GROUP BY userID; -- 이를 조금 더 쉽게 알아보기 위해 AS를 사용한다. -- AS ' ' 는 별명을 붙이는 것이다. USE sqldb; SELEC..
-
try 문의 사용 예BackEnd/JAVA 2022. 4. 5. 12:49
// try 문의 사용 예를 보여주는 프로그램 class SillyExample { public static void main(String[] args) { int a = 3, b = 0; int result; // try 블록 안에는 익셉션을 발생할 가능성이 있는 명령문을 써넣어야 합니다. try{ result = a / b; System.out.println(result); } // catch 블록 안에는 그 익셉션을 처리하는 명령문들을 써넣어야 합니다. // java.lang.ArithmeticException e는 각가의 익셉션 변수의 타입과 이름 catch (java.lang.ArithmeticException e){ System.out.println("잘못된 연산입니다."); } } }
-
SQL의 분류BackEnd/Database 2022. 4. 1. 10:39
DML (Data Manipulation Language, 데이터 조작 언어) 데이터를 조작(선택, 삽입, 수정, 삭제)하는 데 사용되는 언어 DML 구문이 사용되는 대상은 테이블의 행 DML 사용하기 위해서는 데이블이 정의되어 있어야 한다. SQL문 중 SELECT, INSERT, UPDATE, DELETE가 이 구문에 해당된다. 트랙잭션(Transaction)이 발생하는 SQL도 이 DML에 속한다. 테이블 데이터를 변경(입력, 수정, 삭제)할때 실제 테이블에 완전히 적용하지 않고 임시로 적용시키는 것 DDL (Data Definition Language) 데이터 정의 언어 테이터베이스, 테이블. 뷰, 인덱스 등의 데이터베이스 개체를 생성, 삭제, 변경하는 역할 되돌림이나 완전적용 사용 불가 실행 즉..