본문 바로가기

Portpolio/webdev_tip95

KSEB 3기 03.04 오프라인 수업 후기 학기 중에는 8번(월, 금)동안 오프라인 수업으로 진행이 되었습니다 오늘 강의는 KB금융그룹에서 근무하고 계시는 현업 개발자 분의 특강으로 진행이 됐습니다 간단하게 AI에 대한 현황과 AI 서비스의 발전 과정, 개발자로서 자신을 계발하는 방법, 오프 더 레코드로 강사님 본인이 직접 참여하신 AI 프로젝트 내용등을 가볍게 회고하며 교육이 종료되었습니다 특히 기억에 남는 부분들을 몇가지 복기해 보자면 1. 개발블로그 작성에 너무 집착하지 마라 2. 면접관의 입장에서 구체적 질문을 할 수 있도록 코드로 포폴과 자기소개를 마무리를 하자 3. AI에서 모델러나 석사 이상의 연구직군도 있지만 그것을 서비스로 개발하는 역량 역시 수요가 높다 판교 경기스타트업캠퍼스 내부 구내식당 식권이 제공된다는 점이 아주 좋았습니다.. 2024. 3. 6.
K-Software Empowerment Bootcamp 3기 OT 후기 2월 27일 15시~16시 30분 장소는 2층 창업라운지였습니다.1학기 중에는 온오프라인 블렌디드 형식으로 진행하고(Udemy와 성균관대 판교캠퍼스), 여름방학 때 주요 기업 직원분과 멘토링 형식으로 팀프로젝트를 진행한다고 합니다:) 2024. 2. 27.
K-Software Empowerment Bootcamp 3기 합격 과학기술부와 정보통신기획평가원, 성균관대가 주관하는 모 부트캠프에 합격했습니다. 오리엔테이션이 2월 27일에 있다고 하네요... 오티가 끝나면 후기를 남겨보겠습니다! 2024. 2. 26.
토비의 스프링 3.1 1권 06. AOP 6.1 트랜잭션 코드의 분리 비즈니스 로직보다 트랜잭션 코드가 더 많이 차지하는 문제 잔존 메소드를 정확히 분리하기 문자 그대로 메소드 내에서 코드를 분리하는 방법을 의미한다. DI 이용해서 트랜잭션을 분리하기 UserService라는 클래스를 인터페이스로 바꾸고 그 아래에 비즈니스 로직과 트랜잭션을 담당하는 클래스를 두도록 한다. 트랜잭션 경계 설정에는 자바에서의 TransactionManager를 사용한다.6.2 고립된 단위 테스트 단위 테스트는 가능한 작은 단위에서 테스트 하는 것이 제일 좋다. 그러나, 코드를 작성하다보면 의존관계는 계속 복잡해질 수 밖에 없다. 여기에서 테스트 대상을 고립시키고 테스트를 하는 것이 시간을 절약하고 계산 비용을 줄일 수 있다. 단위 테스트를 진행할 때 스텁이나 목 .. 2024. 2. 24.
토비의 스프링 3.1 1권 05. 서비스 추상화 5.1 사용자 레벨 관리 기능 추가 기본적으로 만든 UserDao에는 CRUD 기능만 포함 => 비즈니스 로직을 추가해야 함 기본적인 회원의 등급, 수정의 범위, 레벨 관리 등의 기능을 추가해야 함 5.2 트랜잭션 서비스 추상화 트랜잭션의 원자성: 완전히 변경이 되던가 아니면 변경을 안하던가 이 원자성이 보장되지 않는 경우 큰 문제가 발생함 하나의 SQL 명령을 처리하는 경우는 DB가 트랜잭션을 보장한다는 것을 전제로 하지만 여러 SQL 명령을 하나의 트랜잭션으로 취급하려면 경계설정이 필수적임 여기서 경계를 설정하는 부분이 .setAutoCommit(false)이나 .commit(), .rollback() 등으로 지정됨 롤백은 문제가 생길 시 다시 원상태로 돌리는 작업을 의미하며 게임에서의 세이브 기능과.. 2024. 2. 17.
토비의 스프링 3.1 1권 04. 예외 2024. 2. 17.
spyder 실행 오류 ModuleNotFoundError: No module named 'zmq.asyncio' 해결법 며칠 전 python 프로그래밍을 위해서, Anaconda 내에 포함된 Spyder라는 ide를 실행시켰는데 아무리 켜봐도 실행이 안되는 것이다. 그래서 이미 Anaconda Prompt로 spyder를 쳐서 실행해보려고 했는데, ModuleNotFoundError: No module named 'zmq.asyncio' 이런 오류가 뜨는 것이다. zmq란 zero message queue라는 분산/동시성 애플리케이션에 사용하도록 개발된 고성능 비동기 메시징 라이브러리이다. 메시지 큐를 제공하지만 메시지 지향 미들웨어와 달리 ZeroMQ는 전용 메시지 브로커 없이 동작이 가능하다. 라고 하는데 내가 쓰고자 하는 spyder ide 실행 오류에 대해서 해결하기 위해선 pyzmq라는 라이브러리가 있어야 하는데.. 2024. 2. 7.
error:0308010c:digital envelope routines::unsupported 주로 Node.js에서 일어나는 에러이다. 필자는 npm start를 하고 서버가 제대로 실행이 되지 않길래 얼마 후 터미널에 뜬 메시지를 보니 위의 제목같이 내용이 뜬 것이다. 기본적으로 이 문제에 대한 아래의 방법은 보안의 취약성을 어느 정도 야기할 수 있다는 방법임을 인지할 필요가 있다. 레거시 공급자라는 보안상 다소 불안정하여 사용하지 않는 요소를 활성화시키는 작업이 필요하다. 해결방법(리눅스): 터미널에 아래의 명령을 입력하고 엔터한다. export NODE_OPTIONS==--openssl-legacy-provider 더 자세한 내용은 MD4 알고리즘에 대해 찾아보면 좋을 듯 하다. 2024. 2. 4.
토비의 스프링 3.1 1권 스터디 03. 템플릿 3장. 템플릿 3.1 다시 보는 초난감 DAO DB 커넥션은 어떤 예외가 발생하더라도 리소스를 다시 반환해야 한다. 예외 상황에서 리소스 반환하는 방법을 찾아야 한다. 대표적으로 아래의 코드를 보자. jdbc 수정에서 필요한 리소스는 2개가 있다. Connection과 PreparedStatement. public void deleteAll() throws SQLException { Connection c = dataSource.getConnection(); PreparedStatement ps = c.prepareStatement("delete from Users"); ps.executeUpdate(); //예외가 발생 시 메소드 실행 중단이 된다. ps.close(); c.close(); } 방금 전.. 2024. 1. 27.
토비의 스프링 3.1 1권 스터디 02. 테스트 02장. 테스트 2.1. 테스트 스프링 프로젝트에서는 src 디렉토리 하위에 main 디렉토리와 test 디렉토리를 두어서 개발한 로직에 대해 테스트를 할 수 있게 해 준다. 테스트는 반드시 진행해야 하는 과정이다. 2.2. 기존 테스트 코드 개선 Junit을 이용해서 리팩토링 가능 그러려면 메소드가 public으로 선언되어야 하고, 메소드에 @Test라는 Annotation이 붙어야 한다. 2.3. 개발자를 위한 테스팅 프레임워크 Junit 코드에 변경 사항이 없다면 항상 동일한 결과를 내야 한다. Junit은 @Test가 붙은 메서드를 실행하기 전과 후에 각각 @Before과 @After가 붙은 메서드를 자동으로 실행 테스트 메서드를 실행할 때마다 새로운 오브젝트를 만드는 이유는? 2.4.스프링 테스.. 2024. 1. 23.