목록전체 글 (531)
개발놀이터
Character 클래스에 isLowerCase, isUpperCase의 존재를 몰랐다... Character 클래스 은근 자주 쓰일듯 하다. 풀지는 못했고 선생님 코드로 바로 확인하겠다. package string.upperlower12.teacher; import java.util.Scanner; public class Main { private static String solution(String str) { String answer = ""; for (char x : str.toCharArray()) { if (Character.isLowerCase(x)) answer += Character.toUpperCase(x); else answer += Character.toLowerCase(x); //..
package string.findletter.my; import java.util.Scanner; public class Main { /** * 문제점 * 1. inputSecond 를 String 이 아니라 char 로 받아서 하는게 더 깔끔함 * 2. divideLetter 메서드를 사용 했는데 이거 굳이 필요한가? 싶은 생각 * * 해결방안 * 1. inputSecond 를 char 로 받아서 한글자만 비교하면 된다. * 2. charAt 을 적극 이용하면 divideLetter 필요없다. */ public static void main(String[] args) { Scanner input = new Scanner(System.in); String inputFirst = input.nextLin..
Q. TCP와 UDP의 차이점에 대해서 설명해주세요 A. TCP는 연결 지향형 프로토콜이고 UDP는 데이터를 데이터그램 단위로 전송하는 프로토콜입니다. TCP는 연결형 서비스로 가상 회선 방식을 제공합니다. 따라서 전송이 양방향으로 동시에 일어날 수 있는 전이중 방식과 각 연결이 정확히 2개의 종단점을 가지고 있는 점대점 방식을 사용합니다. 또한 흐름 제어와 혼잡 제어와 같은 특징때문에 높은 신뢰성을 보장합니다. UDP는 데이터 수신 여부를 확인하지 않아 신뢰성이 낮지만 TCP보다 속도가 빠르고 1:1 & 1:N & N:N 통신이 가능합니다. 결론적으로 TCP는 파일전송과 같이 신뢰성이 중요한 서비스에 사용되고 UDP는 스트리밍과 같이 연속성이 더 중요한 서비스에서 사용됩니다. https://coding..
이번 포스팅은 TCP와 UDP가 무엇인지 각각의 특징은 어떤것이 있는지 차이점은 어떤게 차이점인지 그래서 이 둘은 어느상황에서 쓰는지에 대한 내용을 적어보도록 하겠습니다. 우선 TCP와 UDP는 TCP/IP의 전송 계층에서 사용되는 프로토콜입니다. 각각의 정의에 대해서 먼저 알아보도록 하겠습니다. TCP TCP를 해석하면 전송을 제어하는 프로토콜이라는 뜻입니다. 일반적으로 TCP와 IP를 함께 사용하는데 IP가 데이터의 배달을 처리한다면 TCP는 패킷을 추적 및 관리하게 됩니다. 여기서 패킷이란 인터넷 내에서 데이터를 보내기 위한 경로배정을 효율적으로 하기 위해서 데이터를 여러 개의 조각들로 나누어 전송을 하는데 이때, 이 조각을 패킷이라고 합니다. TCP는 연결형 서비스를 지원하는 프로토콜로 인터넷 환..
Q. www.google.com 을 검색하면 어떻게 되나요? A. 웹 브라우저는 캐싱된 DNS 기록들을 통해 해당 도메인주소와 대응하는 IP주소를 확인합니다. 이후 웹브라우저가 HTTP를 사용하여 DNS에게 입력된 도메인 주소를 요청합니다. DNS는 웹브라우저에게 찾는 사이트의 IP주소를 응답합니다. 이후 웹브라우저가 웹서버에게 IP주소를 이용하여 html문서를 요청합니다. 이후 WAS와 데이터베이스에서 우선 웹페이지 작업을 처리합니다. 해당 작업처리 결과를 웹서버로 전송합니다. 이후 웹서버는 웹브라우저에게 html 문서결과를 응답합니다. 웹브라우저는 화면에 웹페이지 내용물을 출력합니다. https://coding-review.tistory.com/237 www.google.com을 검색하면 일어나는 일..
Q. 데이터베이스 정규화란 무엇인가요? A. 정규화란 데이터의 중복방지, 무결성을 충족시키기 위해 데이터베이스를 설계하는 것입니다. 정규화에는 제 1 정규화, 제 2 정규화, 제 3 정규화, BCNF 정규화가 있습니다. 제 1 정규화는 테이블의 컬럼이 하나의 값을 갖도록 테이블을 분해하는 것입니다. 제 2 정규화는 제 1 정규화를 진행한 테이블에 대해 완전 함수 종속을 만족하도록 테이블을 분해하는 것입니다. 완전 함수 종속이라는 것은 기본키의 부분집합이 결정자가 되어선 안된다는 것을 의미합니다. 제 3 정규화는 제 2 정규화를 진행한 테이블에 대해 이행적 종속을 없애도록 테이블을 분해하는 것입니다. 여기서 이행적 종속은 A -> B, B -> C 가 성립할때 A -> C 가 성립되는 것을 의미합니다. B..
이번 포스팅에선 이해하기 어렵기로 소문난 정규화에 대해서 포스팅해볼 생각입니다. 저도 정규화에 대해서 공부해야겠다고 마음 먹었지만 이렇게 이해하기 힘들었던 적은 없었던 것 같네요. 워낙 말이 베베꼬여져 있으니까 예제와 함께 제가 말로 풀어서 설명해보도록 하겠습니다. 정규화 정규화는 무엇일까요? 우선 정규화의 기본 목표는 테이블 간에 중복된 데이터를 허용하지 않는다는 것입니다. 중복된 데이터를 허용하지 않음으로써 무결성을 유지할 수 있으며, DB의 저장 용량 역시 줄일 수 있습니다. 저는 여기서 한가지 걸리더군요. 무결성은 또 뭔가? 정규화에 대해서 알아보기 전에 무결성을 유지할 수 있다고 하니 무결성에 대해서 조금만 알아보도록 하겠습니다. 무결성 무결성에는 크게 세가지가 있습니다. 개체 무결성, 참조 무..
테이블 작성시에 Constraint를 사용해서 입력하는 자료에 대해서 제약, 즉 규칙을 정해줄 수 있는데요. 이때 정해진 제약에 따라서 데이터가 입력이 됩니다. 제약에 배반된다면 자료 입력이 거부되면서 오류가 납니다. 즉, 데이터 무결성을 지키기 위한 데이터 무결성 제약조건에 대해서 알아볼까 합니다. 데이터 무결성이란 권한이 부여된 계정이나 사람만이 접근 가능하고, 정확하고 완전한 데이터들이 저장되어 있는 상태를 생각하시면 됩니다. 데이터의 무결성을 위해서 데이터베이스에서는 5가지의 제약조건을 제공하고 있습니다. 이제 각각에 대해서 알아보도록 하겠습니다. 1. NOT NULL -구문 형식 NOT NULL은 INSERT 시 즉, 데이터 입력시에 누락이 되어서는 안되는 부분이라는 것입니다. NULL값이 들어..
Q. 트랜잭션의 격리수준에 대해 설명해주세요 A. 여러 트랜잭션이 처리될 때, 특정 트랜잭션에서 변경하거나 조회하는 데이터를 볼 수 있도록 허용할지 말지를 결정하는 것입니다. 격리 수준으로는 READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SERIALIZABLE 이렇게 네가지가 있습니다. Q. 각각에 대해 설명해주세요 (꼬리질문) A. READ UNCOMMITTED는 다른 트랜잭션에서 커밋되지 않은 내용도 참조할 수 있습니다. READ UNCOMMITTED에서는 한쪽에서 커밋을 하지 않고 롤백을 하더라도 다른 트랜잭션에서 이를 참조할 수 있기 때문에 가장 안전성이 낮은 격리수준으로 사용하지 않는 격리수준입니다. READ COMMITTED는 커밋된 내용만 참조할 ..
Q. 트랜잭션에 대해서 설명해주세요 A. 트랜잭션이란 데이터베이스의 상태를 변화시키는 논리적인 작업 단위라고 할 수 있으며, 트랜잭션에는 여러개의 연산이 수행될 수 있습니다. Q. 트랜잭션의 ACID에 대해서 설명해주세요 A. ACID는 각각 원자성, 일관성, 고립성, 내구성의 약자입니다. 각각의 뜻으로는 원자성은 트랜잭션의 모든 연산이 완벽히 수행되어야 하며, 한 연산이라도 실패하면 트랜잭션의 전체 연산은 실패하게 된다는 것입니다. 일관성은 트랜잭션이 진행되는 동안 데이터베이스가 변경되더라도 업데이트된 데이터베이스로 트랜잭션이 진행되는 것이 아니라 기존에 트랜잭션을 진행하던 데이터베이스로 진행해야 한다는 것입니다. 고립성은 서로 다른 트랜잭션이 동시에 실행될 경우 다른 트랜잭션에 의해 영향을 받지 않고..