본문 바로가기

전체 글

(730)
TDD 사용방법의 구체화와 장.단점 TDD라는 방법을 개발하면서 많이 들어봤을 것이다. TDD에 대한 정의 와 장단점에 대해서 자세히 한번 정리를 해보자 TDD : 테스트 주도 개발방법, 테스트 드라이븐 개발, 말 그대로 일반적인 개발 수행 기법이 아닌, 개발을 하고 테스트를 애자일화하여 끊임없이 테스트 하면서 개발을 진행하는 것이다. Spring framework에서는 제일 대표적으로 JUnit 이 있다. 우선 JUnit에 대한 사용방법에 대해서 알아보기 전에, 해당 방법의 장단점에 대해서 한번 정리를 해보자 장점 : 1. 객체 지향적인 코드 생산 - TDD는 코드의 재사용 보장을 명시 한다. TDD자체가, 우선 객체 지향적인 코드의사용을 명시한다. 해당 사유는 간단하다. JUnit을 통해서 테스트 하는 부분은 객체로 모듈화가 이루어진 ..
JPA 연관관계 주인 및 설정 주의사항 일단 jpa 관련 예시 소스를 한번 보자 Team과 member에 대한 연관관계를 잘 생각해보자 이런 경우에, Team이 연관관계에 주인이라고 할수있다. 이렇게 member에서 가져다가, team에 대한 정보를 update 및 저장 등을 한다고 가정해보자 즉 모든 멤버는 각자 소속된 팀이 있거나, 없다. 이제 Member를 만들고, 이 멤버에 Team을 set해보자 db에는 어떻게 담기게될까?? Member의 Team을 set하였고, 해당 Member를 set, persist를 하게되면, 저렇게 db에 담기게된다. 그런데, 만약에 한 로직에서, flush가 되지않고, 1차 캐시에 값이 남아있는 상태로 find하게되면? add되지않은 상태에서, 값이 find 될 경우가 있다. (트랜잭션 관리) 따라서, 해..
IOS 첫번째, Xcode 프로젝트 생성 및 프로젝트 구조 공부 1. appstore에서 xcode를 다운받는다, 다른데서는 링크로 다운로드를 받고 진행하라고 했지만, 난 개인적으로 이게 제일 편한듯하다. (그리고, 홈페이지로 다운받으면, unable뜬다...) 무튼 다운받고 실행하면 create project할수있고, 저기에서 app을 프로젝트가 생성된다 ios게임도 개발가능해서 나중에 만들어보고싶다 스프링이랑 비슷하게 도메인도 지정해주고 어쩌고 저쩌고하면, 이제 이런식으로 프로젝트가 생성된다. 프로젝트가 생성되고, 기본 설정 파일 및 세팅 프레임웤 파일들이 보인다. 하나씩 분석 해보자 분석하기전에, 만약에 프로젝트 생성 할때 ui를 swiftUi로하면, 구조가 저렇게 뜬다. 구글대부분의 자료에서는 ViewController가있는 자료들이 많기때문에 초심자는 Ui ..
IOS 앱개발 시작하기 IOS 로 모든 주변 개발 기기를 mac os로 맞추다보니, AOS 개발만 했던 나에게 IOS 앱개발은 흥미로웠다. 특히 앱개발로 다양한걸 출시해보고도 싶었다. 1. Xcode ? AOS는 안드로이드 스튜디오를 깔아서했는데, Xcode를 깔아서 해야한다고하네; xcode는 무료로 사용할수있는 ios 개발 툴이다. 이걸로 프로젝트 만들면서 진행하면 된다. 2. 언어 swift 이다. 옵셔널로 주목을 받은 언어 ㅋㅋ 자바랑은 다르지만 비슷할걸로 보인다. 그러면 내일 부터 하나씩 시작해보자 예제부터 뭔가 IOS앱개발은 많이 개발 공부는 못할것같구, 심심하고 지루할때 쪼금씩 해봐야겠다 ㅋㅋ 그냥 장난감 만드는 스킬 만들수있다고 생각을 할만큼만...ㅋ
잡다한 기술 지식 1. 서버가 여러대일때 세션 관리하는방법 -물론 실습을 바탕으로 진행이 되어야 하지만, 간단하게 지식을 익혀보자 세션이란, 사용자의 정보 혹은 로그인 정보를 서버 쪽에서 캐싱해서 가지고 있는 것이다. redis 와같이 세션 관련, 서버가 있는 경우도 있고 was내에서 별도 세션을 저장하는 경우도 있다. 만약에 a라는 사용자가, 로그인을 하고 이정보를 세션에 저장했다고 가정한다. 이 경우에, 서버의 트래픽이 몰릴것을 감안하여, 스케일 아웃을 했다고 한다면, 각 서버에서 가지고 있는 세션의 정보는 각 was 별로 다르게 된다. 이럴 경우에는, 어떻게 해야 문제를 해결할수 있을까 1. sticky session 방식을 사용하면된다. 말그대로, 고정 세션이다. 사용자 usr1이 로그인을 하고 이 정보를 was1..
JPA 관련 h2연동 기존의 aws RDS로 띄워서 개발을 했다가... 요금이 청구되었다 (피같은 내돈....) 그래서 부랴부랴 h2로 바꾸려고한다.... h2는 우선 혼자서 테스트용? 미니프로젝트용? 스터디용? 디비로 많이 쓰이며, 다른 디비보다 연결이쉽고 가볍다. 대신 용량이 적어서 프로토타입이나, 실제 서비스는 불가한 수준이니 참고하자 또한 자바기반의 RDBMS이다 무튼 h2 ㄲ 1. h2 사이트 접속 및 다운 http://www.h2database.com/html/main.html H2 Database Engine H2 Database Engine Welcome to H2, the Java SQL database. The main features of H2 are: Very fast, open source, JDBC ..
Mac OS git 설치 및 연동 정리 윈도우에서, sts 및 개발 툴이 너무 느려서, 윈도우를 떄려치고 mac으로 갈아탔다.... 맥북프로는 빠르고, 이제 하나씩 설정중, 너무 간편한 sts 설정이 아닌, git 설치 연동을 정리해보려고한다. 1. homebrew 설치 git 설치를 위해서는 homebrew가 설치되어야 한다. mac 용 wget이라고 생각하면된다. 해당 명령어는 homebrew공식 사이트를 방문하면 그냥 대놓고 복붙하라고있다. 그대로 복사해서 붙여넣고 실행해준다. homebrew 설치중, 잘안되는 경우가있다. xcode command line 어쩌구저쩌구 하면서 설치가 일부안되는 경우가 있다. 이 경우에는 그냥 무지성으로 app-store에 가서 xcode를 설치해주자. xcode 관련 컴포넌트가 설치가 안된것인데. 이게 ..
잡다하지만 필요한 개발지식 14 MVC1 과 MVC2의 패턴차이 모델1은 jsp페이지 안에서 로직처리를 위해 자바코드가 함께 사용된다. 요청이 오면 직접 자바빈이나 클래스를 이용해 작업을 처리하고 이를 클라이언테 출력해준다. 구조가 단순하지만, jsp내 html코드와 자바코드가 같이 사용되면서 복잡하고 유지보수가 어렵다. 모델2는 이와 다르게 servlet을 만들어 역할을 분담한다. 요청 결과를 출력해주는 뷰만 jsp가 담당하고 흐름 제어 및 비즈니스 로직에 해당하는 컨트롤러의 역할은 서블릿이 담당한다. 유지보수가 쉽지만, 구조가 어렵다. DAO 과 DTO의 차이 DAO는 데이터베이스의 데이터를 접근하기 위한 객체이다. 데이터베이스 접근을 하기 위한 로직과 비즈니스 로직을 분리하기 위해 사용된다. 사용자는 자신이 필요한 IF를 DAO에..