목록전체 글 (28)
쨍쨍
데이터베이스은 쉽게 말해 "데이터의 집합" 데이터베이스를 사용하는 이유? 많은 양의 데이터를 효율적으로 사용할 수 있다. 다수의 사용자가 데이터를 동시에 사용하더라도 정확성을 가출 수 있고, 중복을 최소화하여 관리할 수 있다. DBMS에 의해 중앙집중적으로 관리되기 때문에 한 군데만 보안을 유지에 보안을 강화 시킬 수 있다. DBMS 데이터베이스를 관리하고 응용 프로그램들이 데이터베이스를 공유하고 사용할 수 있도록 환경을 제공하는 소프트웨어 데이터베이스의 특징 실시간 접근성 수시적이고 비정형적인 조회에 대해 실시간으로 즉시 처리하여 응답 가능 계속적인 진화 삽입, 삭제, 갱신을 통해 항상 최신의 데이터를 유지 동시 공유 다수의 사용자가 동시에 원하는 데이터를 공유 가능 데이터베이스를 이용하면 데이터의 보..
표준입력장치 ( 입력 관련 ) Java 표준 출력 장치 ( 출력 관련 ) System.in Scanner BufferedReader System.out System.err 파일 ( 파일 입력 관련 ) Java 파일 ( 파일 출력 관련 ) FileInputStream BufferedReader FileReader FileOutputStream BufferedWriter FileWriter 스트림 └ 데이터를 송수신하기 위한 통로의 개념으로서 입력 혹은 출력, 한쪽 방향으로만 진행. 즉, 연결통로이다. 스트림은 바이트 스트림과 문자 스트림으로 나뉜다. 바이트 스트림은 1바이트 단위로 처리하고, 문자 스트림은 2바이트 단위로 처리한다. 바이트스트림 문자스트림 FileInputStream FileOutputSt..

클릭 이벤트를 사용하는 방법 ① 익명클래스 생성 ) 쉽게 말하자면 익명 클래스 생성으로 리스너를 구현하여 등록하는 방법이다. 방법 public void InitializeView() { btnred = (Button)findViewById(R.id.btn1); btnblue = (Button)findViewById(R.id.btn2); btngreen = (Button)findViewById(R.id.btn3); textView = (TextView)findViewById(R.id.textView); } InitializeView()코드를 사용해 각 뷰 위젯의 참조를 얻어온 후 public void SetListener() { btnred.setOnClickListener(new View.OnClickL..

뷰 바인딩(View Binding) 쉽게 말해 findViewById를 통해 하나하나 뷰를 찾지 않고, 뷰와 상호작용하는 코드를 쉽게 작성할 수 있다. findViewById findViewById를 사용하면 되는데 굳이 ViewBinding을 사용해야할까? 뷰 바인딩을 사용하지 않았을 때는 findViewById를 사용해 레이아웃에서 생성한 위젯(버튼, 텍스트 등)을 메인코드에서 하나하나 findViewById()을 사용해 선언해줘야한다. 위 사진에서는 findViewById로 선언해줘도 복잡하지 않은데 findViewById를 써도 되지 않을까? 라고 생각할 수 있지만 지금은 위젯이 3개이기 때문에 findViewById로 선언해줘도 코드가 길어지고 복잡해지지 않는 것이다. 만약, 위젯이 100개라면..

레이아웃 이름 설명 제약 레이아웃 제약 조건을 사용해 화면을 구성하는 방법으로 안드로이드 스튜디오에서 자동으로 설정하는 디폴트 레이아웃 리니어 레이아웃 창고 안에 박스를 쌓을 때 아래에서 위로 쌓는 것 처럼 뷰가 차지하는 영역을 박스라고 보고 한 쪽 방향으로 차례대로 뷰를 추가하여 화면을 구성하는 방법으로 뷰가 차지할 수 있는 사각형 영역을 할당 상대 레이아웃 부모 컨테이너나 다른 뷰와의 상대적 위치로 화면을 구성하는 방법이지만 제약 레이아웃을 사용하게 되면서 상대 레이아웃은 권장하지 않음 프레임 레이아웃 가장 상위에 있는 하나의 뷰 또는 뷰그룹만 보여주는 방법으로 여러개의 뷰가 들어가면 중첩하여 쌓게 됨 가장 단순하지만 여러 개의 뷰를 중첩한 후 각 뷰를 전환하여 보여주는 방식으로 자주 사용 테이블 레..

[ 서버 ]main.javaimport java.io.IOException;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;import java.util.ArrayList;public class Main { public static ArrayList OutputList; public static void main(String[] args) { OutputList = new ArrayList(); System.out.println("서버가 시작되었습니다. 클라이언트의 연결 요청을 기다리고 있습니다..."); try { ServerSocket ser..

[ 서버 코드 ] static List list = collections.synchronizedlist(new ArrayList()); 이때 static을 붙이는 이유는 static 없이 그냥 list를 선언하게 되면 새로운 클라이언트가 들어올 때마다 새로운 list가 생기기 때문이다. 내가 원하는대로 채팅방에 들어온 인원의 정보를 한 list에 담기 위해서는 static을 붙여서 list를 선언해줘야합니다. socket = serverSocket.accept(); serverSocket 객체를 생성하여 클라이언트의 연결 요청을 대기한 후 클라이언트가 연결 요청을 보내면 accept() 메서드를 호출하여 클라이언트와 서버를 연결합니다. ReceiveThread receiveThread = new Rece..

프로토콜(Protocol) 컴퓨터와 컴퓨터 사이에서 데이터를 원활히 주고 받기 위하여 약속한 여러가지 규악이다. 대표적인 프로토콜의 종류로는 5개가 있다. └ TCP/IP - 인터넷 접속을 위한 기본 프로토콜 └ HTTP - 홈페이지를 제대로 띄우기 위한 프로토콜 └ FTP - 빠른 파일 송수신을 위한 프로토콜 └ SMTP, POP - 이메일을 보내고 받을 수 있는 프로토콜 └ DHCP - 인터넷 주소를 자동할당 설정 프로토콜의 주요기능으로는 8개로 아래와 같다. 주소지정 네트워크에서 다른 객체를 식별하기 위한 주소를 부여한다. 순서지정 데이터 단위의 통신을 할 때 전송 순서를 명시하여 순서 역전이나 중복 패킷 발생 등을 방지한다. 단편화와 재조립 전송하려는 데이터의 용량이 큰 경우, 대용량 파일의 패킷..