본문 바로가기

잡다한 개발잡담

(22)
JAVA - 숏서킷 연산 short curcit?? 자바 공부하다가 이런게 있었나 싶어서 포스팅합니다. 숏서킷 연산은 논리연산자에서 알아볼 수 있습니다. 코딩을 하다보면 if( a || b) , if( a && b) 와 같은 논리연산자를 사용하게 됩니다. 먼저 a || b 부터 보겠습니다. or 연산으로 a 또는 b가 트루라면 조건문을 실행하게 됩니다. 즉 그렇다는 것은 a와 b 둘 중 하나만 true여도 된다는 것이고 a만 true라면 이미 조건문을 실행할 수 있게 되는 조건이 충족된 것이죠. 그렇기 때문에 자바에서는 숏서킷연산에 의해서 true || b라면 b의 연산을 실행하지 않습니다. 그렇다면 &&은? a와 b 모두가 true여야 합니다. 그렇다면 false && b라면? b가 true, false 무엇이든 이미 조건을 ..
Java class, Interface 차이 가장 큰 차이는 생성자가 없다. 메모리를 덜 잡아먹는다.~ 추상 클래스와 인터페이스의 차이 추상 클래스는 상속 받아서 기능을 이용, 확장시키는것이 목적 반면 인터페이스는 매서드의 구현을 강제하기 위함(구현 객체의 같은 동작을 보장) 또한, 자바는 다중 상속을 지원하지 않습니다. extends a, b (x) 그러나 인터페이스는 여러개를 사용 가능 implements a, b(o) 이러한 이유 때문에 다중상속을 위해 만들어진 것이라고 생각하실 수 있지만 그러한 이유로 만들어진 것은 아니며 추상 클래스는 상위 클래스를 상속 받는다는 것, 인터페이스는 같은 동작을 보장하는 목적이라는 것을 알고 계시면 될 것 같습니다.
JAVA <-> JDBC PreparedStatement, Statement, CallableStatment 차이점! PreparedStatement 저는 개발할 때 가장 많이 썼습니다! 동적인 쿼리를 날릴 떄 사용합니다. Statement 정적인 쿼리를 날릴 때 사용합니다. 근데 생각해보시면 JAVA에서 미리 변수를 통해 동적인 쿼리를 Statment로 보낼 수 있게 만들 수도 있습니다. 위에 두개는 무슨차이가 있을까요? DBMS에 SQL의 명령어를 실행하게 되면 DBMS는 SQL구문을 해석하고 실행계획을 작성한 후에 SQL문이 실행됩니다. 그렇기 때문에 실행계획을 캐싱해서 사용한다면 재사용성을 높일 수 있습니다! PreparedStatment는 이러한 재사용성을 보장하지만 Statement는 재사용 하지 못하기 때문에 PreparedStatment를 사용하는것이 좋습니다. 물론 한번의 쿼리만 사용하는 것이 명확하다면..
프로시저의 장단점 개발을 하다가 여러 번의 쿼리가 필요한 로직이 있었는데 스토어드 프로시저로 한번 짜보았습니다. 프로시저의 장점은 아무래도 DB에서 모든 로직을 처리하기 때문에 빠른 처리 속도를 보여주는 것이죠 또한 DB에 업데이트만 해주면 바로 서버에 반영되는 것도 좋은 장점입니다. (운영관점에서) 그렇지만 과도한 트래픽이 발생한다면 트래픽의 부하를 DB에서 다 받기 때문에 분산해주지 못한다는 단점과 재사용성의 문제점 등을 단점으로 들 수 있겠습니다. DELIMITER $$ CREATE PROCEDURE student_register (IN IN_STUNO INT(11), IN IN_STUID VARCHAR(45), IN IN_STUPW VARCHAR(45), IN IN_STUNAME VARCHAR(45), IN IN_..
JAVA <-> MYSQL 연동을 위한 JDBC 자바 콘솔을 활용한 간단한 프로그램이 학교 수업에서는 가끔 과제로 나오곤합니다. 이때, 데이터베이스를 활용한 프로그램 개발을 위해서는 JDBC가 필요합니다. JDBC API는 JAVA에서 DB를 사용할 수 있게 만들어주는 연결고리라고 생각하시면 됩니다. JDBC API는 JDBC Driver Manager를 통해서 연결되는데 JDBC Driver Manager는 각 DB마다 다르다는 것을 알고 있으셔야 합니다. ㅎㅎ MYSQL은 JDBC를 사용하기 위해 driver를 다운로드 할 수 있게 제공해주고 있습니다. https://dev.mysql.com/downloads/connector/j/ MySQL :: Download Connector/J MySQL Connector/J 8.0 is highly rec..
MVC 패턴 JAVA와 JDBC를 이용한 간단한 수강신청 프로그램을 만들기 위해 어떻게 구현해야 할까 고민하던 중 MVC패턴을 활용해 구현해보았습니다. 먼저 MVC패턴은 많이 쓰이는 디자인패턴인 만큼 귀에는 익숙했는데 막상 구현하려고 하니까 난감했습니다. 그렇다면 MVC패턴을 많이 쓰이는 이유가 무엇일까요? 제 개인적인 생각은 팀 프로젝트를 진행할 때, 쉽게 모듈화를 할 수 있고 구조가 눈에 익으면 유지보수도 용이하다는데 그 이유가 있는 것 같습니다. MVC는 Model, View, Controller의 각 앞글자를 딴 용어입니다. 쉽게 인터넷을 한번 생각해보세요. 사용자가 인터넷 화면(View)를 보고 조작을 하게 되면(클릭과 같은 이벤트) Controller는 그것을 Model에 전달하게 됩니다. Model을 C..