
오늘 바보처럼 로컬에서 작업하고 푸시까지 했는데 사실 잘못된 커밋이었다는 걸 깨달았다... 여러 번 이런 적이 있었고, 그때마다 어찌저찌 돌아가긴 했는데 이번엔 정말 내가 완벽하게 이해한 상태에서 되돌릴 수 있어서 뿌듯했다. 앞으로 같은 문제가 터지면 제대로 해결할 수 있을듯. 그래서 정리해둔다! 우선 정확한 상황을 말해보자면, 1. 원격 : 정상(0) + 잘못된 커밋 1개 올라가 있는 상태 2. 로컬 : 1의 상태(정상(0) + 잘못된 커밋 1개) + 잘못된 merge까지 있는 상태 이랬다. 그래서 로컬이 원격보다 2 커밋 앞에 있던 상태. 그리고 따로 브랜치가 분리된 상태는 아니었다. 단순히 강의들었던 내용 기록목적이라 그냥 main브랜치에서 작업하고 있었다. 그래서 되돌리기 위해 해야 할 일은 1...
지금까지 DB를 이용해서 한 프로젝트는 총 세 번이었다. 세 번의 프로젝트를 하면서 '객체지향이 그렇게 좋다고 노래를 부르면서 왜 객체지향적인 장점을 나는 느낄 수 없는걸까? 객체는 단순히 테이블의 데이터를 전달하는 것 아닌가?'하는 생각이 들었다. ('하나의 객체 안에 멤버변수로 또 다른 객체가 있다면 데이터베이스에서는 어떻게 처리를 해줘야 하나?' 등.) 세 번의 프로젝트 중 두 번은 직접 JDBC API를 사용했고, 한 번은 myBatis를 사용했다. 좀 더 객체지향적으로 애플리케이션을 설계해보고 싶은 욕심을 느꼈고, 마침 그때 를 보고 나와 같은 고민을 한 개발자들이 있고(역시...!) JPA라는 ORM 프레임워크를 알게 되었다. 그래서 JPA를 공부하기 전에 내가 왜 JPA를 배우려고 하는지, ..

매번 프로젝트를 할 때마다 느끼는건데, '과연 이걸 구현할 수 있을까?', '못하면 어떡하지?' 싶은 기능들을 어찌저찌 잘 구현해가고 있다. 오늘은 프로젝트를 하면서 구글링을 했었지만 만족할만한 결과가 없어서 혼자 이 코드 저 코드 봐가며 완성한 기능을 정리하려고 한다. 혹시 비슷한 기능을 만들 누군가에게 도움이 되기를. (제 방법이 제일 효율적이라거나 그런 것은 아닙니다. 저는 이렇게 구현했고, 혹시 다른 더 좋은 방법이 있다면 알려주시면 감사하겠습니다.) 우선 상황을 설명하자면 이랬다. 위 화면은 숙소정보 상세조회화면이다. 아래의 리스트는 리뷰리스트인데, 저 리스트의 제목을 누르면 그 리스트의 내용이 보여야 한다. 보여야 하는 내용에는 리뷰의 이미지들도 포함되어 있는데, 테이블구조상 리뷰와 리뷰이미지..
요즘 팀플젝을 깃허브로 하고 있는데, 저 두 파일이 자꾸 떠서 신경쓰여서 찾아봤다. pom.properties 응용프로그램의 구성 가능한 파라미터들을 저장하기 위해 자바 관련 기술을 주로 사용하는 파일들을 위한 파일 확장자라고 나와있다. ko.wikipedia.org/wiki/.properties .properties 위키백과, 우리 모두의 백과사전. .properties는 응용 프로그램의 구성 가능한 파라미터들을 저장하기 위해 자바 관련 기술을 주로 사용하는 파일들을 위한 파일 확장자이다. 국제화와 지역화를 위 ko.wikipedia.org MANIFEST.MF ko.wikipedia.org/wiki/%EB%A7%A4%EB%8B%88%ED%8E%98%EC%8A%A4%ED%8A%B8_%ED%8C%8C%E..
꾸역꾸역 프로젝트를 진행하고 있었는데... 열심히 해서 진도를 빼놓고 다른 기능 추가하고 있는데 갑자기 400이 떴다. 콘솔에도 아무 것도 안 찍히고, 400만 뜨니 답답해죽을 지경이었는데... form에서 전송방식을 (원래는 POST였다.) GET으로 바꾸는 아주 간단한 방법으로 다음 페이지로 전달되는 변수들을 확인했더니 한 놈이 제대로 안 가고 있었다... 그래서 수정하다가 혹시 까먹을까봐, 그리고 누군가에게 도움이 될까해서 글로 써둔다. 400이 뜨면 주소창을 통해 데이터가 제대로 가고 있는지 확인하자... 값이 맞다면 데이터 타입을 의심해보는 게 좋을듯하다.
요즘은 스프링을 공부하고 있는데 좀 더 깊게 알고 싶은 마음에 낮에는 학원에서 공부하고 밤에는 추가적으로 스프링 인터넷강의를 듣고 있다. 그러다보니 학원에서는 A를 알려주는데, 인터넷강의에서는 B를 알려주는 경우가 있다. 오늘이 그랬다. 학원에서는 Bean을 설정할 때 xml파일을 통해 의존관계 주입 설정하고 아래와 같은 코드를 사용했다. ApplicationContext context = new ClassPathXmlApplicationContext("config.xml"); 그런데 오늘 스프링 인터넷강의를 듣다보니 자바로 config클래스파일(Config)을 만들고 아래와 같은 코드를 사용했다. ApplicationContext applicationContext=new AnnotationConfigA..
오늘 프로젝트를 하다가 서버에 저장해놓은 파일 삭제에 문제가 생겼는데 알고 보니 내가 A폴더에 서버를 잡았어야 했는데, B폴더에 잡고 있었다. 그동안 프로젝트를 하면서 별 문제도 없었는데(심지어 이제 프로젝트 끝나가는 중) 갑자기 저 경로가 org.eclipse.wst.server.core/tmp0/wtpwebapps/ 정확하게 어떤 의미의 것인지 궁금해졌다. 물론 이클립스가 톰캣을 구동하면서 jsp를 컴파일해서 가상의 폴더에 두고 사용한다는 것은 알고 있었다. dololak.tistory.com/156 [이클립스] 이클립스 웹 어플리케이션 프로젝트 배포 경로 이클립스 개발한 웹 어플리케이션 배포 경로 이클립스에서는 톰캣등의 WAS를 연동하여 가상의 WAS를 통해 개발을 하게 됩니다. 실제 톰캣의 경우에..

요즘 Servlet과 JSP를 배우고 있는데, 이해할 겸 내 나름대로 내용을 정리해본다. (혹시 정정할 내용이 있다면 댓글 부탁드립니다.) Servlet Servlet은 JSP가 나오기 전에 웹페이지(HTML)를 동적으로 생성하는 기술로 제공되었다. Servlet은 자바 클래스의 일종으로, Servlet 클래스를 선언할 땐 Servlet 인터페이스를 구현하는 방법과 HttpServlet 클래스를 상속하는 방법이 있는데, 전자는 복잡하므로 후자를 선호한다. Servlet은 자바의 여러 장점들을 누릴 수 있지만 HTML, CSS, 웹디자인과 함께 사용하기엔 많은 단점이 있다. 그래서 1999년에 Sun에서는 JSP(JavaServer Pages)를 내놓았다. Servlet의 경우, 웹페이지의 form에서 들..