본문 바로가기

web +a

(58)
비즈니스 로직 배치 문제 개발하면서 자꾸 들었던 생각 중 하나 : 이런 로직은 어디에 두어야 하는지.. 상황 : 원래 나는 어떠한 비즈니스 로직은 거의 XXXService에 구현했다. 그런데 계속 드는 의문.. Entity에 두는 경우는 없나? Entity의 필드를 계속 업데이트해줘야 한다면 Entity 내부에 update 메서드를 배치하는 것이 가독성이 좋을 것 같다고 생각했다. 그런데 내 경험상으로는 Entity에다가 static toEntity(Dto dto)만 넣고 사용해본 것이 전부라서, 어떤 로직을 Entity에 넣어도 괜찮은 건지 확신이 들진 않았다. 해결 : Entity에 직접 두면 안되나? 라는 고민을 한 사람은 역시 있었다. 결론은 상관없다는 것이다. 본인 판단 하에 자연스러운 배치를 하면 문제가 없을 것이다...
jython https://stackoverflow.com/questions/33928720/do-you-need-jython-for-calling-a-python-script-from-java do you need jython for calling a python script from java? I have seen in answered here that if you want to call a python script from java, you can use jython as a option. But have seen other answers as well saying, you can use Process or ProcessBuilder and stackoverflow.com https://www.baeldung...
https://suhwan.dev/2019/02/24/jpa-vs-hibernate-vs-spring-data-jpa/ JPA, Hibernate, 그리고 Spring Data JPA의 차이점 개요 Spring 프레임워크는 어플리케이션을 개발할 때 필요한 수많은 강력하고 편리한 기능을 제공해준다. 하지만 많은 기술이 존재하는 만큼 Spring 프레임워크를 처음 사용하는 사람이 Spring 프레 suhwan.dev
웹애플리케이션 아키텍처 - 현황 이번에 웹개발을 첨으로 해본다. 역할을 나누어 간단한 sns를 완성하기로 했다. back 프레임워크 : Spring Boot front : html로 간단한 화면만 만들기로 했다. 설계방식 : JPA + REST api 기반 일반적인 웹애플리케이션 계층구조 ∨ Domain(Entity) / Repository / Service / Controller 계층 ∨ 보통 나열한 순서대로 개발한다. 우리 팀은 구현할 서비스별로 역할분담했기 때문에 각자 모든 계층을 개발하는 경험을 하게 된다. - 필요한 모든 Entity는 설계완료했다. - 나는 Chat 서비스를 담당했다. ∨ Chat 서비스에서 사용하는 핵심 Entity 준비 후 chatRepository, chatService, chatController를 개..
스프링부트 ~30 | 관점지향 프로그래밍 (AOP, aspect-oriented programming) Intro 웹애플리케이션 개발시 아주 기본적인 CRUD 구현 말고도 부가기능이 필요할 것이다. 필요한 부가기능의 예시로, 잘 동작하는지 확인하는 로깅, 메서드 성능측정을 위한 수행시간 확인 기능, (@RunningTime) 핵심 비즈니스로직 (은행이라면 입금 출금 이체 등) 등이 있겠다. 한편 핵심 비즈니스 로직은 또다시 로깅, 보안, 트랜잭션 등 부가기능을 포함한다. 그래서 반복적으로(복붙) 작성될 여지가 있는데, 그러면 당연히 코드가 중복되어 더러워진다. => 이 문제에서 AOP 기법이 나온다! AOP 로깅, 보안, 트랜잭션 등 부가기능(로직)을 필요한 특정시점에 주입해주는 것이다. DI가 특정 객체를 주입해주는 것과 비슷하게, 특정 로직을 주입해주는 것이다. 트랜잭션 처리를 위해 지금까지 사용한 @..
스프링부트 ~28 | oracle DB연동 Intro 지금까지 실습할 때는 h2 DB를 사용해보았다. 오늘 팀원들과의 회의로 정한 DB는 oracle db이다. 스프링부트와 연동해보자. 더보기 조장님이(?) 숙제로내준 oracle DB설치.. 까랏다! DB 드라이버를 스프링부트에 추가하고 설정작성하면 된다. >v 데이터를 유지하기 위해 : 초기화하지 않겠다고 never로 설정하자. - 세번째꺼: 서버가 켜질때 tabel, data를 생성하고 서버를 끌때 모두 삭제된다고 설정한 것이 create-drop이다. => 데이터를 유지하기 위해 : 이젠 update로 설정해서 table, data가 유지되도록 하자. 그러면 진짜.. 저기 명시한 db에 데이터가 저장&유지된다 우와~~ 서버 켜고 웹 접속해서 입력폼에 데이터 입력하고 sql developer..
스프링부트 ~27 | 댓글 삭제 (+ JS) intro 댓글 CRUD 구현의 마지막!! 댓글 삭제 기능도 지금까지 댓글 생성, 수정 요청을 js를 통해 구현한 것과 동일하다. "삭제버튼 클릭 => js 통한 이벤트 처리로 rest api 요청" 시시시작~! >ㅅ {...})과 같이 처리한다. recall) btn.addEventListener("click", () => {...}); recall) function() {...} 랑 () => {...}랑 같은표현 이벤트 처리는 어떻게 작성해야 할까? 버튼을 추가한 부분을 보자. 각 버튼에는 id 데이터를 전달했었다. 더보기 삭제 ⓐ 그럼 각 버튼에서 댓글 id 가져온 다음에 ⓑ 삭제 api 호출하는 내용을 슉 작성하면 되겠네.. ↓ 각 버튼에서 id 가져오는 처리 ※ evnet매개변수 click e..
스프링부트 ~26 | 역시 js로 댓글수정기능 추가 (+모달 사용!) Intro 댓글 수정 페이지뷰를 만들고 (이번에도) javascript의 이벤트 처리를 통해 댓글을 수정해보자. ∨ 미리 생각해보기 : 댓글생성때는 rest api를 호출하기 위해 fetch() 기능을 사용했다. 수정도 rest api 요청을 보내는 건 마찬가지니까 똑같이 fetch(url, {보낼내용}).then(response => {응답후행동}) 이런 코드를 사용하지 않을까 싶다!! 이 rest api 호출부를 수정버튼.클릭리스너 블록 안에 넣는것이 아닐까요로리링~!? + 새롭게 해볼 것들! ∨ 부트스트랩5가 제공하는 Modal 사용 ∨ 이를 제어하는 js코드 사용 먼저 가볍게 수정버튼 넣고 시쟉 ~~! 더보기 수정..기능..추가...니까.. 댓글 옆에 수정버튼 넣어야겠지.. 그냥.. 저번에 작성한..
다른 블로그