목록분류 전체보기 (21)
학습 기록 블로그

프로젝트 세팅하다 보면 갑자기 프로젝트에 아래 사진처럼 x표시가 생길 때가 있다. 보이는 것처럼 어디에 오류가 난 것인지 폴더상에 표기되어 있지 않아 프로젝트를 처음 진행해 보거나 경험이 거의 없는 분들을 당황하게 한다. 우선 이런일이 생겼을 때는 세팅한 라이브러리나 프레임워크의 버전이 맞지 않는 경우가 많다. 차근차근 확인해보자 우선 오류 내용을 확인해야 하니 해당 Eclipse상단의 Window탭에서 show view => other... => General => Problems 탭을 추가해 준 후 errors 내용을 확인해 준다. 폴더상에선 안보이던 오류들이 보인다. 모듈버전과 자바버전이 맞지 않는다고 뜨니 맞춰주자 모듈 버전은 4.0이어야 하고 자바 버전은 1.8이나 그 위의 버전이야 한다고 한다..

과제 겸 작은 프로젝트 진행을 위해 Spring 세팅을 마치고 서버를 실행하니 [Cause: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 예기치 않은 파일의 끝입니다] 이런 오류문이 출력되었다. 결론적으로 에러 원인은 mapper.xml 파일에 아무것도 작성되어 있지 않기 때문이었다. 정확히는 mybatis-config.xml 에 선언되어 있는 DOCTYPE configuration의 루트와 mapper.xml 에 선언된 DOCTYPE mapper의 루트가 일치하지 않아서였다. mybatis-config.xml 파일은 SQL 쿼리를 선언한 Mapper에서 데이터를 자동 매핑할 수 있도록 VO(DTO) 객체를 설정할 수 있는 파일이다. 때..
현행 시스템 파악 절차 - 1단계(구, 기, 인) 시스템 구성파악 : 현행 시스템의 구성은 조직의 주요 업무를 담당하는 기간 업무와 이를 지원하는 지원 업무로 구분하여 기술 시스템 기능 파악 : 현행 시스템의 기능은 단위 업무 시스템이 현재 제공하는 기능들을 주요 기능과 하부 기능, 세부 기능으로 구분하여 계층형으로 표시 시스템 인터페이스 파악 : 현행 시스템의 인터페이스에는 단위 업무 시스템 간에 주고받는 데이터의 종류, 형식, 프로토콜, 연계 유형, 주기등을 명시 => 데이터 형식 : XML, 고정 포맷, 가변 포맷 등 => 통신규약 : TCP/IP, X25 등 => 연계유형 : EAI, FEP 등 더보기 EAI(Enterprice Application Integeration) - 기업 내 여러 애플..
개인적으로 공부한 도커 내용을 짧게 정리한 글입니다. 도커란? docker는 컨테이너를 활용함으로써 컴퓨터 자원활용성을 높일 수 있는 오픈소스 가상화 플랫폼이다. 도커를 사용하는 이유는? 하나의 컴퓨터에서 여러 서비스를 돌리게 되면 각각의 프로젝트 설정에 따라 여러 오류나 충돌이 발생하게 된다. 그러면 이런 점을 해결할 방법에는 무엇이 있는가? 생각해 볼 수 있는 경우는 두 가지로 가상환경과 docker의 컨테이너 방식이다. VirtualBox나 VMWare, 페러릴즈 등으로 내 OS안에 또 다른 OS들을 설치해서 각 OS마다 다른 서비스를 개발하는 가상환경 방식은 각 서비스들을 확실하게 분리해주긴 하지만 효율이 좋은 방법은 아니다. 한정되어 있는 컴퓨터 자원을 각 OS마다 특정 비율로 분할해서 끌어가기..

Java의 메모리 관리법 중 하나인 가비지 컬렉션(GC) 학습을 위해 내용을 정리해보고자 한다. 1. 가비지 컬렉션이란? GC라고도 불리는 가비지 컬렉션은 자바의 메모리 관리법 중의 하나로 JVM의 Heap 영역에서 동적으로 할당했던 메모리 영역 중 필요 없게 된 메모리 영역(메모리 객체)을 주기적으로 삭제하는 프로세스를 말합니다. C나 C++에서는 free()라는 함수를 통해 개발자가 수동으로 메모리 할당과 해제를 해주어야 하는 반면 Java에서는 JVM에 탑재되어 있는 가비지 컬렉터가 메모리 관리를 주기적으로 대신 해주기 때문에 개발자가 완벽하게 관리하지 않아도 된다는 장점이 있습니다. 2. 가비지 컬렉션 단점 메모리 관리를 자동으로 해준다 해도 메모리가 언제 해제되는지 정확하게 알 수 없어 제어하기..
Java로 개발을 시작했다보니 자연스럽게 Spring을 쓰고 있었는데, 진행했던 프로젝트의 Spring 버전을 확인해보니 '5.3.22' 로 설정되어있었다. 그러다 문득 우린 왜 5.x버전을 사용했을까 하는 의문과 함께 내가 Spring 버전별 특징을 모르고 있다는 것을 자각하게 되었고 생각난 김에 조사하고 정리해보려한다. Spring 3.x Spring 3.0 부터 Java5가 지원된다. OXM(Object Xml Mapping)을 사용하여 Bean을 XML형태로 관리할 수 있게 되었다. Rest API 에 대한 지원이 추가되었다. 서버로서는 기존 MVC Framework 레벨에서 Annotation 기반 확장이 추가되었다. 클라이언트로서는 RestTemplate 을 추가해 지원한다. Java 클래스로..

Java 구동원리와 JVM의 개념 및 원리에 대해 조사해보고 정리해보려 합니다. 자바 프로그램 구동 원리 1. 자바 소스코드를 작성한다.(.java 확장자 소스파일) 2. JDK안의 컴파일러(javac.exe)가 소스코드를 바이트코드(.class 확장자 클래스 파일)로 변환한다. 3. 런처(java.exe)로 자바 가상 머신을 구동시킨다. 4. 자바 가상 머신이 바이트코드를 해석하여 자바 프로그램이 실행된다. 바이트코드(bytecode)는 자바 가상 머신이 이해할 수 있는 언어로 변환된 코드다. 자바 가상 머신만 설치되어 있다면 바이트코드는 어떤 운영체제에서라도 실행될 수 있다. 추가적으로 위 그림에서 자바코드가 JVM에 전달되는 과정을 단계별로 살펴보자면 1) 컴파일 과정 이후 컴파일된 바이트코드를 J..
신입 개발자 면접 단골질문이라고 하는 객체지향 프로그래밍 (OOP)에 대해서 간단하게 정리해보려고 합니다. OOP란 무엇인가?? OOP는 Object Oriented Programming의 줄임말입니다. 각각 객체(Object)/ 지향(Oriented)/ 프로그래밍(Programming) 객체 지향 프로그래밍이란 기존의 컴퓨터 중심적 패러다임과는 다른 인간 중심적 프로그래밍 패러다임입니다. 현실 세계의 사물을 객체라고 보고 그 객체로부터 개발하고자 하는 애플리케이션에 필요한 특징들을 뽑아와 프로그래밍하는 것입니다. 이것을 추상화라고 합니다. 답변용 정리 프로그래밍에서 필요한 데이터를 추상화시켜서 상태(멤버 변수)와 동작(메서드)을 가진 객체로 만들고, 그 객체들 간의 유기적인 상호 작용을 통해 로직을 구..

이번 글에서는 교육원 수료 후에 스터디 모임(사실상 파이널 조원중에서 수료 후에 스터디 더 할분들 모집한 모임)에서 진행한 프로젝트에 관한 해프닝, 구현기능 및 코드 정리, 느낀 점, 아쉬운 점을 기록해보려 한다. 이번 프로젝트는 나를 포함한 총 3명의 백엔드 팀원과 함께 진행하였고, 그동안 학습한 내용과 더불어 추가로 구현해보고 싶었던 기능들을 적용해 보기 좋은 주제를 상의하다 북코아라는 중고도서판매 사이트를 벤치마킹해 만들어보기로 결정했다. 1. 무언가 잘못된 파트분배 첫 번째 회의에서 파트분배를 어떤 식으로 할지 먼저 정해 보기로 했는데 기능별로 맡을지, 페이지별로 담당할지 고민했었다. 이전 프로젝트에서는 기능별로 파트를 분배해서 개발을 진행했었는데 이런 식으로 진행했을 때는 페이지당 개발 부담감은..

파이널 프로젝트 교육원 마지막 프로젝트로 나를 포함한 총 4명의 팀원과 함께 진행하게 되었고, 프로젝트를 진행하면서 있었던 해프닝과 느낀 점, 아쉬웠던 점 등을 기록해보려 한다. 글제주 없어서 두서없음 주의... 최대한 노력해 보겠음! 1. 시작부터 위기 사실 프로젝트를 시작했을 당시 팀원은 총 5명이었다. 파이널 프로젝트 1주 차 2번의 회의를 통해 기본설계를 마무리하고 각자 개발파트 분배까지 끝난 시점이었다. 솔직히 이분에게 어떤 기능을 맡겼었는지 정확히 기억은나지 않는다(나가신 후 너무 정신없이 만들어야 했기 때문에...) 기억이 나는 부분은 이분이 자주 자신 없어하는 모습과 가능한 쉬운 파트를 받기를 원하셨었기 때문에 "너무 부담스러워하지 마시고 저희도 다 배우는 입장이니까 같이 물어보면서 잘해보..