Q. 왜 자바는 JDK, JRE와 같은 것을 설치해야 하고, 자바스크립트는 설치가 필요없는걸까? 이것에 대해 이해하려면 일단 Java와 Javascript의 언어 차이를 이해해야 한다. 자바스크립트는 인터프리터 언어이고 자바는 컴파일 언어이다. 인터프리터 언어와 컴파일 언어의 차이는 무엇일까? "인터프리트"는 사전에 머신코드나 바이트코드로 변경하는 일 없이 "line by line"으로 읽고 실행한다는 뜻이다. "컴파일"은 런타임 전에 머신코드나 바이트코드로 변경하는 중간 스텝이 한번 더 추가되고, 이 컴파일된 코드를 머신이나 가상 머신이 실행한다. 자바스크립트의 런타임 환경은 웹 브라우저이다. 그리고 웹 브라우저 내에는 JS engine (e.g. 크롬 V8)이 내장되어 있다. 이 엔진이 자바스크립트 ..
Git Conflict 해결 원격저장소에서 다른 분이 작업한 것을 머징하려고 하니 컨플릭트 발생 친절하게 어디서 무슨 컨플릭트가 났는지 다 알려줌 $ git merge origin/[머징하려는 브랜치명] Auto-merging target/m2e-wtp/web-resources/META-INF/maven/mybook.my/book/pom.properties CONFLICT (content): Merge conflict in target/m2e-wtp/web-resources/META-INF/maven/mybook.my/book/pom.properties CONFLICT (modify/delete): src/main/webapp/WEB-INF/views/bookList.jsp deleted in origi..
java.lang.ClassNotFoundException 에러 서버 구동시 java.lang.ClassNotFoundException 심각: 웹 애플리케이션 [/book] 내의 서블릿 [appServlet]이(가) load() 예외를 발생시켰습니다. java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.exc.InvalidDefinitionException pom.xml 파일 내에 에러 Multiple annotations found at this line: schema_reference.4: Failed to read schema document 'https://maven.apache.org/maven-v4_0_0.xsd',..
Spring MVC 예제 - 1 HTML 파일로부터 쿼리문자열 전달 -> 매핑 컨트롤러가 처리 -> 처리 결과를 JSP로 포워드 case 1 : 전달받을 쿼리 문자열이 적을 때 case 2 : 전달받을 쿼리 문자열이 여러 개일 때(VO 객체 사용) case 3 : 세션 객체를 사용할 때 case1 : 전달받을 쿼리 문자열이 적을 때 HTML 연산할 2개의 숫자를 입력하고 연산자를 선택하시오 + - * / 계산하기 컨트롤러 package my.spring.springedu; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springf..
Spring - 예제 코드로 시작하기 기본적인 스프링 구조를 알아보기 위한 예제 코드를 실행해본다. 파일을 3개 생성한다. Greeter.java - 콘솔에 간단한 메시지 출력할 클래스 AppContext.java - 스프링 설정 파일 Main.java - 메인 메서드로 Greeter, 스프링 실행하는 클래스 package example; public class Greeter { private String format; public String greet(String guest) { return String.format(format, guest); } public void setFormat(String format) { this.format = format; } } package example; impo..
Servlet에서 Session 객체 사용하기 구현 기능 html 파일에서 클릭 이벤트 발생시 id를 쿼리스트링으로 보내고, 서블릿에서 이를 받아서 세션 객체에 저장함 장바구니 기능에 응용될 수 있는 것으로, 사용자가 어떤 이미지를 클릭할 때마다 클라이언트 쪽에서 id 쿼리스트링을 보내서 이를 세션 객체로 생성한 배열에 저장하여 상품 id당 클릭이벤트의 누적 값을 보여주도록 함. 코드 javascript click event - a 태그로 // productlog2.html // image append는 이미 되어 있다고 가정한다. 아래는 이미지 로드 시 실행될 이벤트 함수 function getA() { var anchor = document.createElement('a'); $(..
제네릭스(Generics) - 2 와일드카드 매개변수에 과일박스(FruitBox)를 대입하면 주스를 만들어서 반환하는 Jucier 클래스가 있다고 하자. 이 클래스에는 과일을 주스로 만들어 반환하는 makeJuice()라는 static 메서드가 있다. class Juicer { static Juice makeJuice(FruitBox box) { String tmp = ""; for(Fruit f : box.getList()) { tmp += f + " "; } return new Juice(tmp); } } 이 메서드의 패러미터 타입을 Fruit타입의 FruitBox 객체로 제한하였기 때문에, Fruit 이외의 타입 은 들어갈 수 없다. (Juicer는 제네릭 클래스도 아니고, 제네릭 클래스라고 하여도..
제네릭스 문제로 이해하기 문제 int와 String 어레이를 아규먼트로 받아서 출력하는 single 메서드를 작성하시오. 제네릭스를 사용하지 않고 문제 풀기 캐스팅을 이용한 코드 import java.io.IOException; import java.lang.reflect.Method; class Printer { void printArray(Object[] arr) { try { for(Object i : arr) { System.out.println((String)i); } return; } catch (Exception e) { for(Object i : arr) { System.out.println((Integer)i); } } } } public class Solution { public sta..
제네릭스(Generics) - 1 제네릭스란? 다양한 타입의 객체를 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입 체크(compile-time type check)를 해주는 기능이다. 제네릭 타입은 클래스와 메서드에 선언할 수 있다. 제네릭스의 장점? 객체의 타입을 컴파일 시에 체크하기 때문에 객체의 타입 안정성이 높아지고, 형변환의 번거로움이 줄어든다. 제네릭 클래스 선언 // 일반적인 클래스 class Box { Object item; void setItem(Object item) {this.item = item;} Object getItem() {return item;} } // 제네릭 클래스 class Box { T item; void setItem(T item) {this.item = ite..
[표준입출력] nextInt(), nextLine() 차이 문제 int, double, String을 순서대로 입력받은 다음에, String, Double, int 순으로 다시 출력하는 문제 잘못된 코드(1) import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int i = scan.nextInt(); double d =scan.nextDouble(); String s = scan.nextLine(); System.out.println("String: " + s); System.out.println("Double: " + d)..
JDBC 데이터 삽입, 수정, 삭제 테이블 생성 package jdbcexam; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class CreateTable { public static void main(String[] args) throws Exception { try { Class.forName("oracle.jdbc.driver.OracleDriver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } try( Connection conn = DriverManager.ge..
JDBC def: 자바 언어에서 Database에 접근할 수 있게 해주는 프로그래밍 API JDBC 인터페이스는 JDBC 프로그램을 하기 위한 API들로서, SE에서 제공하는 java.sql패키지를 의미한다. JDBC API는 대부분 인터페이스이다. // JDBC API 인터페이스 Connection, Statement, ResultSet 등 // 메서드 Connection : createStatement(), getMetaData() ... Statement: executeQuery(), executeUpdate() ... ResultSet: next(), getXXX() ... 이 인터페이스들은 대부분 몸체가 없으며 이 API들을 활용하려면 java.sql 인터페이스를 상속하여 메서드를 구현할 클래스..
직렬화(Serialization) def: 객체를 데이터 스트림으로 만드는 것. 객체에 저장된 데이터를 스트림에 쓰기(write) 위해 연속적인(serial) 데이터로 변환하는 것을 의미한다. 반대로 스트림으로부터 데이터를 읽어서 객체를 만드는 것은 역직렬화(deserialization)이라고 한다. 객체란 클래스에 정의된 인스턴스 변수의 집합이다. 객체에는 클래스변수나 메서드가 포함되지 않는다. 객체는 오직 인스턴스 변수로만 구성되어 있다. 그래서 객체를 저장한다는 것은 객체의 모든 인스턴스 변수값을 저장하는 것과 같은 의미이다. ObjectInputStream, ObjectOutputStream 직렬화에는 ObjectOutputStream을 사용하고 역직렬화에는 ObjectInputStream을 사용..
스트림(Stream) 스트림은 데이터소스를 추상화하고 자주 사용되는 메서드를 정의해놓았다. 데이터 소스 추상화는 데이터 소스가 무엇이던 간에(ArrayList이든 Array이든) 같은 방식으로 다룰 수 있게 되었다는 것과 코드 재사용성이 높아졌다는 것을 의미한다. 예시 // 배열과 배열리스트 String[] strArr = {"a", "b", "c"}; List strList = Arrays.asList(strArr); // 스트림 생성 Stream strStream1 = Arrays.stream(strArr); Stream srtStream2 = strList.stream(); // 스트림 정렬 및 출력 strStream1.sorted().forEach(System.out::println); strSt..
I/O programming 입력과 출력에 관한 프로그래밍 입출력 표준, 파일, 네트워크 입출력 대상에 관계없이 스트림이라는 논리적 구조를 사용한다. 이는 데이터 소스 추상화와 관련있는 스트림이랑은 다른 개념이다. I/O에서의 스트림은 데이터를 운반하는 데에 사용되는 연결통로이다. 스트림은 크게 바이트 기반과 문자 기반으로 나뉜다. Input, Output 등의 용어가 포함된 스트림은 바이트 기반이며, Reader, Writer이라는 용어가 포함되면 문자 기반 스트림(문자 입출력시 사용)이다. FileReader 예시 import java.io.*; class FileReaderEx1 { public static void main(String[] args) { try { String fileName = ..
- Total
- Today
- Yesterday
- linkedlist
- this
- oracle
- CSS
- youtube data api
- Redux
- JavaScript
- 개발 공부
- Java
- Session
- c언어
- Prefix Sums
- 포인터 변수
- getter
- GIT
- 인스턴스
- react
- SQL
- til
- Data Structure
- 자바
- rxjs
- 알고리즘
- Conflict
- 리덕스
- 제네릭스
- package.json
- useEffect
- jQuery
- 깃
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |