개발 23

String, StringBuffer, StringBuilder, 문자 리터럴 비교

코딩 테스트를 진행하던 중 반복적인 문자 연산 문제가 나왔다. String의 경우 문자열 연산시 새로운 String 객체를 생성하기에 오버해드가 크다 생각하여 StringBuffer를 사용해 보았다. 1 2 3 4 5 6 7 8 9 10 11 import java.util.Scanner; public class Solution { public static void main(String[] args) { //String output = "a" + "b" + "c"; StringBuffer output = new StringBuffer("a"); output.append(b); output.append(c); System.out.println(output); } } 그런데 왠걸 연산에 소모되는 시간이 오히려..

개발/Java 2024.03.11

어째서 인터페이스는 protected 접근제한자 허용하지 않는가?

자바를 공부하며 기본적으로 배우는것이 있다. private < default < protected < public 순으로 넓다는것 또한 메소드 오버라이딩시 접근제한자의 범위를 줄일수 없다는것이 그것이다. public interface AA { void a(); } 그러나 인터페이스에서 선언한 이녀셕을 오버라이딩 하려 하니 public abstract class BB implements AA{ protected void a() {}; } 메소드 a에 빨간줄을 그으며 Cannot reduce the visibility of the inherited method from AA 범위를 줄일수 없다고 하지 않는가? default 접근 제한자는 protected보다 좁은 범위아닌가? 당황하지 않고 빠르게 구글링한 ..

개발/Java 2023.07.20

Spring 이란 무엇인가?

Spring의 특징 의존성 주입 (Dependency Injection) - 객체가 다른 객체의 인스턴스를 멤버로 가지지 않고 @Autowired를 통해 주입 받음 - 때문에 쉽게 Mock 객체로 대체 하여 테스트 가능 제어 역전(Inversion of Control) - 관점 지향 프로그래밍(AOP) - 공통 기능을 모듈화하여 필요한 곳에 연결함으로써 유지보수 또는 재사용에 용이하도록 하는 것을 의미 Spring Framework Spring의 핵심 기능을 담고 있는 프로젝트 - Core, 테스트, 데이터 접근, 웹 서블릿 등등 Spring Boot Spring의 설정을 최소화 시킬 수 있음 - 서버, 라이브러리 내장되있음

개발/Spring 2022.10.09

이클립스 단축키 공략

프로젝트, 파일 생성 : Ctrl + N 프로젝트, 클래스, 패키지 등등 생성 가능 저장 : Ctrl + S 모르는 사람 없다 영역 선택, 이동 전체 선택 : Ctrl + A 전체 다 선택 한다, 포멧이랑 쓰자 줄 추가 선택 : Shift + ↑, Shift + ↓ 한줄 더 추가 포멧 맞춰준다 : Ctrl + Shift + F 편안~ 영역 이동 : Alt + ↑, Alt + ↓ 영역 복사 이동 : Ctrl + Alt + ↑, Ctrl + Alt + ↓ 아웃 라인으로 이동 : Ctrl + O 빠른 이동 선언부 이동 : F3 이걸 어따 선언 했었지..? 영역 삭제 : Ctrl + D 새 출발을 위한 단축키 = Ctrl + A, Ctrl + D 아래에 줄 추가 : Shift + Enter end 키는 너무 멀..

개발/Java 2022.09.30

업무 자동화 (aka메크로) 정리

파이썬 win32 라이브러리를 사용하여 비동기 클릭 코드입니다. 단순 반복 작업에 사용하시면 됩니다. (그렇다고 게임 메크로로 사용하시다 걸리셔도 난 모름) import random import win32api, win32gui, win32con import time import getColor import sys #비동기로 해당 프로그램의 x,y 좌표에 클릭 신호 전달 def click(x,y): hWnd = win32gui.FindWindow(None, "프로그램 이름") lParam = win32api.MAKELONG(x, y) hWnd1 = win32gui.FindWindowEx(hWnd, None, None, None) win32gui.SendMessage(hWnd1, win32con.WM_LB..

개발/파이썬 2022.07.15

React

1. JSX 컴포넌트라는 유닛을 통해 html element의 유지관리를 할 수 있고 이 기능을 자바스크립트에 추가한것 let name = '김상연' const element = Hello, {name}; let name = '김상연' const element = Hello, {name}; 이처럼 JSX 안에서 표현식을 사용할수 있다. 여러줄로 나눠서 쓰려면 괄호로 묶어야 세미콜론 삽입을 피할 수 있다. 속성에 따옴표를 이용해 문자열 리터럴을 정의할 수 있습니다. const element = const element = 속성에 표현식 삽입도 가능 const element = const element = JSX 태그는 자식을 포함할 수 있음 const element = ( hello! ); const el..

개발/Java Script 2020.10.06