본문 바로가기

java12

드디어 업무를 받을 위기(?)의 주디. Maven+MyBatis로 간단한 예제 만들어보기 (몇 주 전에 올렸는데 왜 노출이 안 됐지..ㅠ) 연수가 끝난 후 본격 부서에 배치된 박주디. 첫 주는 하루에 3잔씩 음료를 얻어먹고, 매일매일 인사하기 바쁘다. 다행히 나는 하루 만에 개발망 피씨를 받았다. 딱히 하는 일이 없었는지 어언 3주. 그리고 그녀에게 곧 서버 개발이 주어질 것이라는 예고장이 날아오는데.. 🥷 : 다음 주에 간단한 개발 건 정리해서 드릴게요. 프로젝트 많이 해보셨어요? 🐰주디 : ㅇ..예..! 자.. 자신 있습니다..! 🤖 : 야! 너 개발 환경 세팅받아서 코드 본 지 2시간이고, 권한 받은 지도 2시간이잖아. 그리고 너 MyBatis 해봤어? JPA만 했잖아. 너 Maven 써봤어? Gradle 썼잖아. 너 SVN 써봤어? 너 Git만 썼잖아. 너 폐쇄방에서 개발해 봤어? 너.. 2023. 11. 1.
[Java] Gradle.. Gradle 말입니다. 자바 빌드 도구 🐘 자바 프로젝트를 진행하면서 빌드 도구를 많이 접해볼 것이다. 최근에 프로젝트 세팅을 하면서 Gradle, 이 친구 설정을 많이 변경하고 사용했다. 그런데 말입니다.. 빌드 도구는 여러 가지 있단 말이됴? 그리고 Gradle을 사용하면서 왜 사용하는지, 어떻게 사용하는지 알고는 있나요?! 🤖 : 거.. 살살 하세요. 지금 공부하려고 하잖쇼? 🐰 : 뭐야.. 웬일로 내 편을 들어주니? (떠오르는 과거의 기억..) 1. Build Tool (소프트웨어 개발에서) 소스 코드를 실행 가능한 애플리케이션으로 만들어주는 도구 소스코드의 빌드 과정을 자동으로 처리해주는 도구 외부 소스 코드 (외부 라이브러리) 자동 추가, 관리 종류: APACHE ANT, Maven, Gradle [ Ant(앤트) ] 설정을 위해 XM.. 2023. 5. 19.
[Java] Mutable, Immutable, 방어적 복사, unmodifiableList 🎇 Mutable, Immutable 자바는 new 연산자로 객체를 생성힐 수 있고, 이때 heap 영역에 할당되고 stack 영역에서 참조 타입 변수를 통해 데이터에 접근한다. 이때 자바의 객체의 타입은 두 가지 있다. Mutable(가변) 객체와 Immutable (불변) 객체이다. ✔️ Immutable(불변) 객체 불변 객체 : 객체 생성 이후에는 객체의 상태가 바뀌지 않는 객체 불변 객체 종류: String, Boolean, Integer, Float, Long 등 String을 제외하고 원시 타입의 wrapper 타입이다. 🤖 : 오잇! 나 String 타입 변경한 적 있는 거 같은데? 🐰 : 오.. 이 상황을 말하는 거야? String name = "정윤"; name = "jeongyoon".. 2023. 5. 2.
[우아한테크코스] 프리코스 4주차 : 다리 건너기 (bridge) 이 글은 '프리코스' 과정에 작성한 글이며 현재 레포지토리에 있는 코드와 다를 수 있습니다. (리팩토링함) 🚩 4 주차 목표 1. 클래스(객체)를 분리하는 연습 2. 리팩터링 이 두 가지에 익숙해지는 것을 목표로 하고 있다. [4주 차] 미션 - 다리 건너기 🪜 🏃 리팩토링 전 프리코스 제출 코드 시점 👉 미션 저장소 📎 Source Code (PR) 📆 기간: 2022.11.16(수) 15:00 ~ 2022.11.22(화) 23:59 1. 구현 과정 ⚙️ 기능 구현 목록 작성 👉 기능 구현 목록 박굴렁쇠... 일단 코드가 돌아가게 구현해보자. 그런데 행복하지 않다.. 찝찝해 찝찝한 부분을 확인해보자. 1️⃣ 인스턴스 변수의 수를 줄이기 위해 노력한다. 현재 BridgeGameController에서 생성.. 2022. 11. 19.
[Java] 람다와 스트림 (Lambda & Stream) 람다식 (Lambda Expression) 함수(메서드)를 간단한 '식(expression)'으로 표현하는 방법 익명 함수(이름이 없는 함수, anonymous function) 함수와 메서드의 차이 근복적으로 동일. 함수는 일반적 용어, 메서드는 객체지향개념 용어 함수는 클래스에 독립적, 메서드는 클래스에 종속적 // 반환 값이 있는 경우 (int a, int b) -> a > b ? a : b // 매개변수의 타입이 추론 가능하면 생략가능(대부분 경우 생략가능) (a, b) -> a > b ? a : b ✔️ 함수형 인터페이스 단 하나의 추상 메서드만 선언된 인터페이스 함수형 인터페이스 타입의 참조변수로 람다식을 참조할 수 있음 MyFunction f = (a, b) -> a > b ? a : b; .. 2022. 11. 13.
[Java] 코딩테스트 대비 정리 (1) 동적 타입 언어인 파이썬과 자바스크립트에 적응한 나란 몸.. 정적 타입 언어 자바를 쓰려니 참 어렵다... 휴 자바 미션과 코딩테스트를 대비해서 헷갈렸던 개념을 정리하면서 공부해보자! List 클래스 자바에서 List를 만들때 List 인터페이스를 구현한 ArrayList나 LinkedList와 같은 객체를 생성하게 되는데 Arrays.asList()와 List.of() 메소드로도 생성할 수 있다. 1) Arrays.asList() List strList = new ArrayList(Arrays.asList(splitArray)); 2) List.of() List.of() 메서드는 JAVA 9 부터 지원하는 메서드이다. char 배열과 String 클래스 차이 코드를 짤 때 문자열 저장은 String 타.. 2022. 10. 29.
[IntelliJ] project마다 JDK 버전 관리하기 나는 기존에 JDK 8을 사용하고 있었고 스프링 강의에서는 JDK 11을 사용한다. 엇.. 그러면 IntelliJ 버전은 어떻게 해야할까. Project A Project: Gradle Project Language: Java Java: 11 Project B Project: Gradle Project Language: Java Java: 8 Project Setting (CTRL+ALT+S, CMD+,) ✔️ Gradle JVM 변경 Build, Execution, Deployment > Build Tools > Gradle 여기서 Gradle JVM을 변경한다. 내가 원하는 JDK 버전을 추가해줬다. ✔️ Project bytecode version 변경 Build, Execution, Deploym.. 2022. 10. 25.
[Java] 예외처리 예외처리 (exception handling) 프로그램 오류 컴파일 에러(compile-time error): 컴파일할 때 발생하는 에러 런타임 에러(runtime error): 실행할 때 발생 하는 에러 에러(error): 프로그램 코드에 의해서 수습될 수 없는 심각한 오류 예외(exception): 프로그램 코드에 의해서 수습될 수 있는 미약한 오류 -> 예외는 처리하자!! 논리적 에러(logical error): 작성 의도와 다르게 동작 예외 처리 정의: 프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드를 작성하는 것 목적: 프로그램의 비정상 종료를 막고, 정상적인 실행상태를 유지하는 것 방법: try-catch문, 예외 선언하기 ✔️ Exception Exception 클래스들: 사용자.. 2022. 10. 23.
[Java] 상속 (Inheritance), 오버라이딩, super, super() 상속 (Inheritance) 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것. (코드의 재사용) 자손은 조상의 모든 멤버를 상속받는다. (생성자, 초기화 블록 제외) 자손의 멤버 개수는 조상보다 적을 수 없다. class Parent { int age; } class Child extends Parent {} : 이때 부모 멤버 1개를 모두 상속받았기 때문에 자식 또한 멤버 1개이다. 자손의 변경은 조상에 영향을 미치지 않는다. 예시 class Point { int x; int y; } class Point3D extends Point { int z; } ✔️ 포함 관계 클래스의 멤버로 참조변수를 선언하는 것 작은 단위의 클래스를 만들고, 이들을 조합해서 클래스를 만든다. 예시 class Poi.. 2022. 10. 9.
[Java] 클래스와 객체, 변수와 메서드, 오버로딩, 생성자 1. 객체지향언어 ✔️ 객체 지향 프로그래밍 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다. (협력) 객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다. ✔️ 특징 코드의 재사용성이 높다. 코드의 관리가 용이하다. 신뢰성이 높은 프로그래밍을 가능하게 한다.(캡슐화) ✔️ 핵심개념 캡슐화 상속 추상화 다형성 자바 언어 자바 언어의 다형성을 활용 역할 = 인터페이스 구현 = 인터페이스를 구현한 클래스, 구현 객체 객체를 설계할 때 역할과 구현을 명확히 분리 객체 설계시 역할(인터페.. 2022. 9. 17.
[Java] 비트연산자(bitwise operator) "& | ^ ~ << >>" 비트 연산자는 피연산자를 비트단위로 논리 연산한다. 비트 연산의 우선순위: 논리 연산 (쉬프트 연산자) ex) 7 > .. 2022. 7. 19.
[AI] 자연어처리, konlpy 설치 현재 AI 웹서비스를 진행하고 있다. 우리 서비스의 메인 기능은 자신의 증상을 문장으로 작성하면 영양제 추천을 해주는 서비스이다. 이때, 형태소 분석을 위해서 사용하는 모듈이 konlpy 인데 이 친구 참.. 설치가 쉽게 안된다. 스쳐지나간 오류 지옥 ㅎ.. 해결하면 다음 에러가 나타나고... 0. KoNLPy 한국어 정보처리를 위한 파이썬 패키지이다. 명사 뿐 아니라 모든 품사의 형태소를 알아내려면 morphs라는 명령을 사용한다. konlpy 내 클래스는 Java 기반으로 JDK 설치가 필요하다. 1. JAVA 설치 설치 사이트 https://www.oracle.com/java/technologies/downloads/ 현재 운영체제에 맞게 설치하면 된다. 2. 환경변수 설정 환경변수를 설정해야 JA.. 2022. 6. 23.
반응형