목록전체 글 (57)
개발
NestJS를 좀 뜯어볼까 했다. 디버깅 당연히 되는거 아닌가?! 다음은 nest 프로젝트 생성시 기본 main.ts 파일의 소스이다. async function bootstrap() { const app = await NestFactory.create(AppModule); await app.listen(3000); } bootstrap(); package.json에 정의된 스크립트(npm run start:dev)로 nestjs를 시작한다. create에서 브레이크 포인트를 찍고 f7을 누른다. 이상하다. 소스안으로 들어가지지가 않는다. 뭐지? 오픈톡방에 물어보니 ts는 컴파일 되기 때문에 디버깅 힘들다고한다. ts 파일을 열어보니 함수가 정의돼있지가 않다. nest-factory.ts의 일부 함수 c..
이슈 springboot에서 test코드 작성시에 기초데이터를 insert하는 방법은 여러가지가 있겠지만 data.sql을 이용해보려고 한다. data.sql을 이용해 기초데이터를 넣어보려고한다. Member entity는 다음과같다. @Entity public class Member extends BaseEntity{ @Id @GeneratedValue @Column(name = "MEMBER_ID") private Long id; //...생략 } data.sql은 다음과 같다. INSERT INTO member (member_id,create_date,update_date,bio,email,image,password,username) VALUES (1,'2022-08-03 09:20:17.9..
여러가지 이유가 있겠지만 staged 상태와 관련해서 알아보려고 한다. Git의 워킹 디렉토리의 모든 파일은 크게 Tracked(관리대상)과 Untracked(관리대상이 아님)으로 나눈다. Tracked : 이미 스냅샷에 포함돼 있던 파일 Unmodified(수정하지않음), Modified(수정함), Staged(커밋으로 저장소에 기록할) 상태 중 하나이다. 간단히 말하면 Git이 알고있는 파일. Untracked 파일 : 워킹 디렉토리에 있는 파일 중 스냅샷에도 StagingArea에도 포함되지 않는 파일. 처음 저장소를 Clone하면 모두 Tracked이면서 Unmonodified 상태이다. Integllij에서 새로운 Java파일 생성시에 다음과같은 메세지가 나온다. Add를 누를경우 해당 파일은..
pull 시에 충돌과 병합에대해 알아보자. PULL pull 사용시 원격저장소의 내용을 가져와 로컬데이터와 병합을 하게 된다. 시나리오 A사용자가 Test.class를 수정한뒤 푸쉬했다. B사용자도 Test.class를 수정한 상태이다. 서로 같은 라인을 수정했으며 pull을 했으며 충돌이 나온 상태. 과정 B사용자가 Pull 할경우 나오는 메세지 pull into ‘main’ Using Merge를 이용하자. 클릭시 바로 MergeTool을 보여줌. 충돌을 잡고 apply하면 변경됐을 경우 다음처럼 변경사항에서 확인된것을 볼 수 있음.
fetch와 pull에 차이에 대해서 알아본다. fetch를 이용해 commit하지 않고 충돌을 제거할 수 있다. PULL pull 사용시 원격저장소의 내용을 가져와 로컬데이터와 병합을 하게 된다. FETCH fetch 사용시 pull과 다르게 로컬 데이터와 병합되지 않는다. fetch → merge 실행시 pull과 같은 이력이 만들어 진다. pull은 내부적으로 fetch + merge와 같이 동작한다. 시나리오 A사용자가 Test.class를 수정한뒤 푸쉬했다. B사용자도 Test.class를 수정한 상태이다. 서로 같은 라인을 수정했으며 pull 사용시 merge가 필요하다. 하지만 fetch 사용시 다음처럼 로컬브런치와는 충돌이 없다는 걸 확인할 수 있다. fetch 이후 merge를 이용해 충..
push시에 인텔리제이를 이용해 충돌제거 방법을 간단하게 알아본다. 시나리오 A사용자가 Test.class 수정후 푸쉬 B사용자가 Test.class 수정후 푸쉬. A사용자가 수정한 라인과 같은라인을 수정함. commit, push 과정 해당파일 commit → push 실행 push merge conflicts 발생 commit전 소스 기준으로 좌측에는 현재 나의 commit소스, 우측에는 해당 브랜치의 소스가 비교된다. 해당 소스를 merge 뒤에 apply Apply Changes and Mark Resolved 클릭시 머지가 완료된다. 아직 origin/main에 적용된것은 아님. 머지한 commit을 origin/main으로 푸쉬하자 원격 main브랜치에 푸쉬가 완료됐다.
pom.xml ... javax.mail mail 1.4.7 ... org.apache.commons commons-email 1.5 ... commons-email은 javax.mail 1.5.6에 의존한다..(commons-email 열어보면있음) com.sun.mail javax.mail 1.5.6 현재 라이브러리의 상태 javax.mail 1.4.7과 sun.mail1.5.6은 MimeBodyPart에서 소스가 다른데, 실제 ServiceImpl에서 클래스파일 참조시에는 다음처럼 버전은 명시하지않음. import javax.mail.internet.MimeBodyPart; 문제 프로젝트로 설치할 경우 1.4.7을 참조하는 프로젝트도있고 1.5.6을 참조하는 프로젝트도있다. 참고 https://st..
JPA에서 데이터베이스의 다른 사용자의 db를 조회 이슈 다음처럼 user를 teaming_core로 설정 vendorAdapter.database=ORACLE database.driverClassName=oracle.jdbc.driver.OracleDriver database.url=jdbc:oracle:thin:@localhost:1521:orcl database.username=test1 database.password=test1 로그 확인시 테이블 유저를 test2로 접근하고있음. executing prepstmnt 1259003280 SELECT t0.USERFLAG_ID, t0.USERFLAG_NAME FROM TEST2.TABLE_NAME DB툴에서 test1로 접근후 다음처럼 test2 스..
이슈 FragmentContainerView에서 view.findViewById를 이용한 클릭 이벤트튼 되지만, binding을 사용한 클릭 이벤트 리스너 동작을 안함. 코드수정 기존 코드(바인딩 부분쪽만) class ListFragment : Fragment() { lateinit var binding: FragmentListBinding override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { // Inflate the layout for this fragment binding = FragmentListBinding.inflate(inflater,cont..
이슈 NavController nav_menu를 이용한 fragment이동시에 navigate 함수 이용시 b→ b→ b→ b→ b 같은 메뉴를 계속 클릭하면 stack에 쌓여서 backkey 클릭시 계속 같은화면이 나옴. 코드수정 기존 navigate navController.navigate(R.id.nav_exercise,bundleOf("item" to args)) NavOption을 사용한다. val navOption = NavOptions.Builder().setLaunchSingleTop(true).build() navController.navigate(R.id.nav_exercise,bundleOf("item" to args),navOption) 참고 setLaunchSingleTop htt..