본문 바로가기

전체 글144

[Spring] 🌱 AOP(Aspect Oriented Programming) Spring AOP (Aspect Oriented Programming) AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불린다. 관점 지향은 쉽게 말해 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화하겠다는 것이다. 여기서 모듈화란 어떤 공통된 로직이나 기능을 하나의 단위로 묶는 것을 말한다. 예를 들어 핵심적인 관점은 결국 우리가 적용하고자 하는 핵심 비즈니스 로직이 된다. 또한 부가적인 관점은 핵심 로직을 실행하기 위해서 행해지는 데이터베이스 연결, 로깅, 파일 입출력 등을 예로 들 수 있다. AOP에서 각 관점을 기준으로 로직을 모듈화한다는 것은 코드들을 부분적으로 나누어서 모듈화하겠다는 의미다. .. 2022. 7. 24.
[Spring] 🌱 HelloController HelloController package kr.ac.kopo.ctc.spring.board.web; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; im.. 2022. 7. 22.
[Spring] 🌱 Spring 이란 ( + DI, IoC) Spring 이란? Spring은 Java 기반의 웹 애플리케이션을 만들 수 있는 프레임워크이다. spring.io 사이트에서 확인하면 스프링 프레임워크는 현대 자바 기반의 엔터프라이즈 애플리케이션을 위한 프로그래밍 및 Configuration Model을 제공한다고 언급하고 있다. Python을 이용한 Django, JS를 이용한 Node.js 기반의 웹 서버 개발과 같이 Java 개발자들은 Spring을 사용하여 웹 서비스를 만들 수 있다. Spring의 구조는 아래와 같은 구조로 이루어져 있다. Spring의 특징 ☑️ Spring은 경량 컨테이너로 Java 객체를 직접 Spring 안에서 관리한다. 객체의 생성 및 소멸과 같은 생명 주기(Life Cycle)을 관리하며, Spring 컨테이너에서 .. 2022. 7. 7.
[Java] 📚 BufferedReader / BufferedWriter를 활용한 빠른 입출력 BufferedReader / BufferedWriter BufferedReader / BufferedWriter는 Buffer에 있는 IO 클래스이다. 입력된 데이터가 바로 전달되지 않고 중간에 버퍼링이 된 후에 전달된다. 출력도 마찬가지로 버퍼를 거쳐 간접적으로 출력장치에 전달되기 때문에 시스템의 데이터 처리 효율성을 높여주며 버퍼 스트림을 InputStreamReader / OutputStreamWriter 를 같이 사용하여 버퍼링을 하게 되면 입출력 스트림으로부터 미리 버퍼에 데이터를 갖다 놓기 때문에 보다 효율적인 입출력이 가능하다. 쉽게 말해 버퍼를 이용해서 입출력을 하는 메소드라는 것이다. Java를 공부한 지 얼마 안 된 저와 같은 사람들은 대부분 Scanner 클래스를 사용하여 입력을 받.. 2022. 5. 28.
[Java] 📚 String / StringBuffer / StringBuilder String / StringBuffer / StringBuilder Java를 사용하며 접하게 되는 문자열 클래스들이다. 모두 문자열을 저장하고 관리하는 클래스들로 각 클래스 간에는 조금의 차이가 있다. String VS StringBuffer / StringBuilder String 객체는 한번 생성되면 할당된 공간이 변하지 않지만 StringBuffer나 StringBuilder의 경우 객체의 공간이 부족해지는 경우 버퍼의 크기를 유연하게 늘려준다. 이러한 특징을 일컬어 String은 불변(immutable)하고 StringBuffer와 StringBuilder는 가변(mutable)하다라고 한다. StringBuffer VS StringBuilder StringBuffer / StringBuilde.. 2022. 5. 22.
✔[paiza] 문자열 결합 ✔ 문자열 결합 문제 입력 받을 문자열 수와 문자열을 입력받고 출력 포멧에 맞게 출력하세요. 입력 n // 입력 받을 문자열 수 s_1 // 문자열 s_2 .. s_n 출력 Hello s_1,s_2,..s_n. 입력 예시 1 2 Java Gino 출력 예시 1 Hello Java,Gino. 입력 예시 2 5 Alice Bob Carol Dave Ellen 출력 예시 2 Hello Alice,Bob,Carol,Dave,Ellen. 코드 import java.util.Scanner; public class A1 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scanner = new Scanner(Sys.. 2022. 5. 21.
[Git] 🔔 오류 해결 ![rejected] main -> main (fetch first) error: failed to push some refs to 'git address' Git 오류 해결 ![rejected] main -> main (fetch first) error: failed to push some refs to 'git address.git' (위의 사진에서 노란색 텍스트가 잘 보이지 않아 동일한 에러 메시지 한번 더 받아 드래그 한 상태로 캡쳐) commit을 하려고 할 때 위와 같은 오류 메시지가 뜨면서 commit까지는 되지만 push가 되지 않는 현상이 발생했다. 시간이 없어 아래의 노란색 내용을 잘 읽어보지 않고 구글링으로 오류 해결을 찾아봤다. 위의 에러 메시지와 상관없이 강제로 push 할 수 있는 명령어를 찾았다. $git push origin +main 강제로 위의 명령어를 통해 push를 한 뒤, 돌아보니 github에 올라가 있는 코드와 로컬 .. 2022. 5. 20.
[Git] 🔔 오류 해결 fatal: unsafe repository Git 오류 해결 fatal: unsafe repository ('디렉토리 주소' is owned by someone else) 환경 설정 오류로 인해 다시 eclipse를 설치할 때 기존의 것에 그대로 덮어 다운로드를 했더니 기존에 연결해놓은 것과 충돌?이 일어난 것 같다. 에러 메시지의 안내와 같이 git config --global --add safe.directory ' directory address' 를 입력했음에도 계속 동일한 메시지를 뱉었다. 결국 stack overflow 에서 찾은 4가지의 solution 중 하나를 통해 해결했다. 추천 검색어 fatal: unsafe repository ('/home/repon' is owned by someone else) 첫번째 solution으로.. 2022. 5. 20.
[C] 📚 배열 Array Array 배열 같은 데이터 타입을 가진 다수의 변수들을 하나의 변수만으로 저장할 수 있게 도와주는 자료구조다. 배열 선언, 요소 접근 배열은 변수 이름 뒤에 [ ] 대괄호를 붙인 뒤 크기를 설정한다. 그리고 배열을 선언하면서 값을 초기화 할 때는 { } 중괄호를 사용한다. 자료형 배열이름[크기]; 자료형 배열이름[크기] = {값, 값, 값}; int main() { int studentScoreArray[5] = {80, 90, 100, 40, 50}; // 배열을 생성하고 값 할당 printf("%d\n", studentScoreArray[0]); // 80: 배열의 첫 번째(인덱스 0) 출력 printf("%d\n", studentScoreArray[2]); // 100: 배열의 세 번째(인덱스 2.. 2022. 4. 16.
[JAVA] Exception in thread "main" java.lang.StringIndexOutOfBoundsException Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 14 이번 예외는 인덱스 값으로 마이너스 값을 대입하거나, 문자열 길이보다 큰 인덱스 값을 대입하면 발생한다. 입력값에 영어 문자열을 입력한 후에 문자열 안의 모음과 자음의 개수를 나타내는 프로그램이다. for문 안에 text.length() 값, 즉 입력값 문자열의 길이까지 charAt( )메소드 반복을 시키면 예외가 발생한다. 이때 가장 마지막 문자열까지 확인하고 싶어 length( )메소드를 사용하였지만 주의 할 점은 Java의 모든 인덱스가 1이 아닌 0부터 시작한다는 것이다. 때문에 length( ) 메소드를 통해 길이를 알.. 2022. 3. 12.